Skip to content

Commit 3884fe0

Browse files
committed
Updates routing path for logs
1 parent 350c538 commit 3884fe0

File tree

5 files changed

+29
-20
lines changed

5 files changed

+29
-20
lines changed

packages/telemetry/src/logging/fetch-transport.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ describe('FetchTransport', () => {
187187

188188
const transport = new FetchTransport({
189189
...testTransportParameters,
190-
dynamicHeaders: [dynamicProvider]
190+
dynamicHeaderProviders: [dynamicProvider]
191191
});
192192

193193
//act
@@ -228,7 +228,7 @@ describe('FetchTransport', () => {
228228

229229
const transport = new FetchTransport({
230230
...testTransportParameters,
231-
dynamicHeaders: [dynamicProvider]
231+
dynamicHeaderProviders: [dynamicProvider]
232232
});
233233

234234
//act

packages/telemetry/src/logging/fetch-transport.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ function parseRetryAfterToMills(
5454
export interface FetchTransportParameters {
5555
url: string;
5656
headers: Headers;
57-
dynamicHeaders?: DynamicHeaderProvider[];
57+
dynamicHeaderProviders?: DynamicHeaderProvider[];
5858
}
5959

6060
/**
@@ -73,12 +73,13 @@ export class FetchTransport implements IExporterTransport {
7373
const headers = this.parameters.headers;
7474

7575
if (
76-
this.parameters.dynamicHeaders &&
77-
this.parameters.dynamicHeaders.length > 0
76+
this.parameters.dynamicHeaderProviders &&
77+
this.parameters.dynamicHeaderProviders.length > 0
7878
) {
79-
const dynamicHeaderPromises = this.parameters.dynamicHeaders.map(
80-
provider => provider.getHeader()
81-
);
79+
const dynamicHeaderPromises =
80+
this.parameters.dynamicHeaderProviders.map(provider =>
81+
provider.getHeader()
82+
);
8283
const resolvedHeaders = await Promise.all(dynamicHeaderPromises);
8384

8485
for (const header of resolvedHeaders) {

packages/telemetry/src/logging/logger-provider.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,26 +31,35 @@ import {
3131
} from '@opentelemetry/otlp-exporter-base';
3232
import { FetchTransport } from './fetch-transport';
3333
import { 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
*/
4041
export 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
);

packages/telemetry/src/register.node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function registerTelemetry(): void {
3636

3737
// getImmediate for FirebaseApp will always succeed
3838
const app = container.getProvider('app').getImmediate();
39-
const loggerProvider = createLoggerProvider(endpointUrl);
39+
const loggerProvider = createLoggerProvider(app, endpointUrl);
4040

4141
return new TelemetryService(app, loggerProvider);
4242
},

packages/telemetry/src/register.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@ export function registerTelemetry(): void {
3838
// getImmediate for FirebaseApp will always succeed
3939
const app = container.getProvider('app').getImmediate();
4040
const appCheckProvider = container.getProvider('app-check-internal');
41-
const dynamicHeaders = [new AppCheckProvider(appCheckProvider)];
41+
const dynamicHeaderProviders = [new AppCheckProvider(appCheckProvider)];
4242
const loggerProvider = createLoggerProvider(
43+
app,
4344
endpointUrl,
44-
dynamicHeaders
45+
dynamicHeaderProviders
4546
);
4647

4748
return new TelemetryService(app, loggerProvider);

0 commit comments

Comments
 (0)