@@ -31,26 +31,35 @@ import {
3131} from '@opentelemetry/otlp-exporter-base' ;
3232import { FetchTransport } from './fetch-transport' ;
3333import { DynamicHeaderProvider } from '../types' ;
34+ import { FirebaseApp } from '@firebase/app' ;
3435
3536/**
3637 * Create a logger provider for the current execution environment.
3738 *
3839 * @internal
3940 */
4041export function createLoggerProvider (
42+ app : FirebaseApp ,
4143 endpointUrl : string ,
42- dynamicHeaders : DynamicHeaderProvider [ ] = [ ]
44+ dynamicHeaderProviders : DynamicHeaderProvider [ ] = [ ]
4345) : LoggerProvider {
4446 const resource = resourceFromAttributes ( {
4547 [ ATTR_SERVICE_NAME ] : 'firebase_telemetry_service'
4648 } ) ;
4749 if ( endpointUrl . endsWith ( '/' ) ) {
4850 endpointUrl = endpointUrl . slice ( 0 , - 1 ) ;
4951 }
50- const otlpEndpoint = `${ endpointUrl } /api/v1/logs` ;
52+ const { projectId, appId, apiKey } = app . options ;
53+ const otlpEndpoint = `${ endpointUrl } /v1/projects/${ projectId } /apps/${ appId } /logs` ;
5154 const logExporter = new OTLPLogExporter (
52- { url : otlpEndpoint } ,
53- dynamicHeaders
55+ {
56+ url : otlpEndpoint ,
57+ headers : {
58+ 'Content-Type' : 'application/json' ,
59+ ...( apiKey ? { 'X-Goog-Api-Key' : apiKey } : { } )
60+ }
61+ } ,
62+ dynamicHeaderProviders
5463 ) ;
5564
5665 return new LoggerProvider ( {
@@ -67,7 +76,7 @@ class OTLPLogExporter
6776{
6877 constructor (
6978 config : OTLPExporterConfigBase = { } ,
70- dynamicHeaders : DynamicHeaderProvider [ ] = [ ]
79+ dynamicHeaderProviders : DynamicHeaderProvider [ ] = [ ]
7180 ) {
7281 super (
7382 createOtlpNetworkExportDelegate (
@@ -79,10 +88,8 @@ class OTLPLogExporter
7988 JsonLogsSerializer ,
8089 new FetchTransport ( {
8190 url : config . url ! ,
82- headers : new Headers ( {
83- 'Content-Type' : 'application/json'
84- } ) ,
85- dynamicHeaders
91+ headers : new Headers ( config . headers ) ,
92+ dynamicHeaderProviders
8693 } )
8794 )
8895 ) ;
0 commit comments