feat: Enable Tracing Support For Self-Hosted & Cloud Phoenix Instance (#5114)

* feat: Enable Tracing Support For Self-Hosted & Cloud Phoenix Instance

* feat: Add Testcase For Phoenix Exporter URL Handling
This commit is contained in:
Ali Saleh
2025-09-04 14:39:43 +05:00
committed by GitHub
parent 23cb5f7801
commit b026671887
2 changed files with 70 additions and 5 deletions
+51
View File
@@ -0,0 +1,51 @@
import { getPhoenixTracer } from './handler'
jest.mock('@opentelemetry/exporter-trace-otlp-proto', () => {
return {
ProtoOTLPTraceExporter: jest.fn().mockImplementation((args) => {
return { args }
})
}
})
import { OTLPTraceExporter as ProtoOTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'
describe('URL Handling For Phoenix Tracer', () => {
const apiKey = 'test-api-key'
const projectName = 'test-project-name'
const makeOptions = (baseUrl: string) => ({
baseUrl,
apiKey,
projectName,
enableCallback: false
})
beforeEach(() => {
jest.clearAllMocks()
})
const cases: [string, string][] = [
['http://localhost:6006', 'http://localhost:6006/v1/traces'],
['http://localhost:6006/v1/traces', 'http://localhost:6006/v1/traces'],
['https://app.phoenix.arize.com', 'https://app.phoenix.arize.com/v1/traces'],
['https://app.phoenix.arize.com/v1/traces', 'https://app.phoenix.arize.com/v1/traces'],
['https://app.phoenix.arize.com/s/my-space', 'https://app.phoenix.arize.com/s/my-space/v1/traces'],
['https://app.phoenix.arize.com/s/my-space/v1/traces', 'https://app.phoenix.arize.com/s/my-space/v1/traces'],
['https://my-phoenix.com/my-slug', 'https://my-phoenix.com/my-slug/v1/traces'],
['https://my-phoenix.com/my-slug/v1/traces', 'https://my-phoenix.com/my-slug/v1/traces']
]
it.each(cases)('baseUrl %s - exporterUrl %s', (input, expected) => {
getPhoenixTracer(makeOptions(input))
expect(ProtoOTLPTraceExporter).toHaveBeenCalledWith(
expect.objectContaining({
url: expected,
headers: expect.objectContaining({
api_key: apiKey,
authorization: `Bearer ${apiKey}`
})
})
)
})
})