Skip to content

Commit a333d47

Browse files
committed
Remove loggerProvider from public telemetry interface
As per API design review feedback.
1 parent 572afb5 commit a333d47

File tree

12 files changed

+27
-54
lines changed

12 files changed

+27
-54
lines changed

common/api-review/telemetry-angular.api.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import { ErrorHandler } from '@angular/core';
88
import { FirebaseApp } from '@firebase/app';
9-
import { LoggerProvider } from '@opentelemetry/sdk-logs';
109

1110
// @public
1211
export class FirebaseErrorHandler implements ErrorHandler {
@@ -18,7 +17,6 @@ export class FirebaseErrorHandler implements ErrorHandler {
1817
// @public
1918
export interface Telemetry {
2019
app: FirebaseApp;
21-
loggerProvider: LoggerProvider;
2220
}
2321

2422
// @public

common/api-review/telemetry-react.api.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
```ts
66

77
import { FirebaseApp } from '@firebase/app';
8-
import { LoggerProvider } from '@opentelemetry/sdk-logs';
98

109
// @public
1110
export function FirebaseTelemetry({ firebaseApp, telemetryOptions }: {
@@ -16,7 +15,6 @@ export function FirebaseTelemetry({ firebaseApp, telemetryOptions }: {
1615
// @public
1716
export interface Telemetry {
1817
app: FirebaseApp;
19-
loggerProvider: LoggerProvider;
2018
}
2119

2220
// @public

common/api-review/telemetry.api.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import { AnyValueMap } from '@opentelemetry/api-logs';
88
import { FirebaseApp } from '@firebase/app';
99
import { Instrumentation } from 'next';
10-
import { LoggerProvider } from '@opentelemetry/sdk-logs';
1110

1211
// @public
1312
export function captureError(telemetry: Telemetry, error: unknown, attributes?: AnyValueMap): void;
@@ -26,7 +25,6 @@ export function nextOnRequestError(telemetryOptions?: TelemetryOptions): Instrum
2625
// @public
2726
export interface Telemetry {
2827
app: FirebaseApp;
29-
loggerProvider: LoggerProvider;
3028
}
3129

3230
// @public

docs-devsite/telemetry_.telemetry.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export interface Telemetry
2525
| Property | Type | Description |
2626
| --- | --- | --- |
2727
| [app](./telemetry_.telemetry.md#telemetryapp) | [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) | The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance is associated with. |
28-
| [loggerProvider](./telemetry_.telemetry.md#telemetryloggerprovider) | LoggerProvider | The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses. |
2928

3029
## Telemetry.app
3130

@@ -36,13 +35,3 @@ The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](.
3635
```typescript
3736
app: FirebaseApp;
3837
```
39-
40-
## Telemetry.loggerProvider
41-
42-
The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses.
43-
44-
<b>Signature:</b>
45-
46-
```typescript
47-
loggerProvider: LoggerProvider;
48-
```

docs-devsite/telemetry_angular.telemetry.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export interface Telemetry
2525
| Property | Type | Description |
2626
| --- | --- | --- |
2727
| [app](./telemetry_angular.telemetry.md#telemetryapp) | [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) | The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance is associated with. |
28-
| [loggerProvider](./telemetry_angular.telemetry.md#telemetryloggerprovider) | LoggerProvider | The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses. |
2928

3029
## Telemetry.app
3130

@@ -36,13 +35,3 @@ The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](.
3635
```typescript
3736
app: FirebaseApp;
3837
```
39-
40-
## Telemetry.loggerProvider
41-
42-
The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses.
43-
44-
<b>Signature:</b>
45-
46-
```typescript
47-
loggerProvider: LoggerProvider;
48-
```

docs-devsite/telemetry_react.telemetry.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export interface Telemetry
2525
| Property | Type | Description |
2626
| --- | --- | --- |
2727
| [app](./telemetry_react.telemetry.md#telemetryapp) | [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) | The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance is associated with. |
28-
| [loggerProvider](./telemetry_react.telemetry.md#telemetryloggerprovider) | LoggerProvider | The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses. |
2928

3029
## Telemetry.app
3130

@@ -36,13 +35,3 @@ The [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) this [Telemetry](.
3635
```typescript
3736
app: FirebaseApp;
3837
```
39-
40-
## Telemetry.loggerProvider
41-
42-
The this [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance uses.
43-
44-
<b>Signature:</b>
45-
46-
```typescript
47-
loggerProvider: LoggerProvider;
48-
```

packages/telemetry/src/api.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import { expect } from 'chai';
1919
import { LoggerProvider } from '@opentelemetry/sdk-logs';
20-
import { Telemetry } from './public-types';
2120
import { trace } from '@opentelemetry/api';
2221
import { Logger, LogRecord, SeverityNumber } from '@opentelemetry/api-logs';
2322
import {
@@ -43,6 +42,7 @@ import { TelemetryService } from './service';
4342
import { registerTelemetry } from './register';
4443
import { _FirebaseInstallationsInternal } from '@firebase/installations';
4544
import { AUTO_CONSTANTS } from './auto-constants';
45+
import { TelemetryInternal } from './types';
4646

4747
const PROJECT_ID = 'my-project';
4848
const APP_ID = 'my-appid';
@@ -66,7 +66,7 @@ const fakeLoggerProvider = {
6666
shutdown: () => Promise.resolve()
6767
} as unknown as LoggerProvider;
6868

69-
const fakeTelemetry: Telemetry = {
69+
const fakeTelemetry: TelemetryInternal = {
7070
app: {
7171
name: 'DEFAULT',
7272
automaticDataCollectionEnabled: true,
@@ -307,7 +307,7 @@ describe('Top level API', () => {
307307
AUTO_CONSTANTS.appVersion = '1.2.3'; // Unused
308308
const telemetry = new TelemetryService(
309309
fakeTelemetry.app,
310-
fakeTelemetry.loggerProvider
310+
fakeLoggerProvider
311311
);
312312
telemetry.options = {
313313
appVersion: '1.0.0'

packages/telemetry/src/api.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ export function captureError(
7878
error: unknown,
7979
attributes?: AnyValueMap
8080
): void {
81-
const logger = telemetry.loggerProvider.getLogger('error-logger');
81+
const logger = (telemetry as TelemetryService).loggerProvider.getLogger(
82+
'error-logger'
83+
);
8284
const customAttributes = attributes || {};
8385

8486
// Add trace metadata
@@ -137,7 +139,9 @@ export function captureError(
137139
* @returns a promise which is resolved when all flushes are complete
138140
*/
139141
export function flush(telemetry: Telemetry): Promise<void> {
140-
return telemetry.loggerProvider.forceFlush().catch(err => {
141-
console.error('Error flushing logs from Firebase Telemetry:', err);
142-
});
142+
return (telemetry as TelemetryService).loggerProvider
143+
.forceFlush()
144+
.catch(err => {
145+
console.error('Error flushing logs from Firebase Telemetry:', err);
146+
});
143147
}

packages/telemetry/src/helpers.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
import { expect } from 'chai';
1919
import { LoggerProvider } from '@opentelemetry/sdk-logs';
2020
import { Logger, LogRecord } from '@opentelemetry/api-logs';
21-
import { Telemetry } from './public-types';
2221
import { startNewSession } from './helpers';
2322
import {
2423
LOG_ENTRY_ATTRIBUTE_KEYS,
2524
TELEMETRY_SESSION_ID_KEY
2625
} from './constants';
2726
import { AUTO_CONSTANTS } from './auto-constants';
2827
import { TelemetryService } from './service';
28+
import { TelemetryInternal } from './types';
2929

3030
const MOCK_SESSION_ID = '00000000-0000-0000-0000-000000000000';
3131

@@ -47,7 +47,7 @@ describe('helpers', () => {
4747
shutdown: () => Promise.resolve()
4848
} as unknown as LoggerProvider;
4949

50-
const fakeTelemetry: Telemetry = {
50+
const fakeTelemetry: TelemetryInternal = {
5151
app: {
5252
name: 'DEFAULT',
5353
automaticDataCollectionEnabled: true,
@@ -124,7 +124,7 @@ describe('helpers', () => {
124124
it('should log app version from telemetry options', () => {
125125
const telemetryWithVersion = new TelemetryService(
126126
fakeTelemetry.app,
127-
fakeTelemetry.loggerProvider
127+
fakeLoggerProvider
128128
);
129129
telemetryWithVersion.options = { appVersion: '9.9.9' };
130130

packages/telemetry/src/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export function getSessionId(): string | undefined {
5555
* 2. In Cloud Logging as its own log entry
5656
*/
5757
export function startNewSession(telemetry: Telemetry): void {
58-
const { loggerProvider } = telemetry;
58+
const { loggerProvider } = telemetry as TelemetryService;
5959
if (
6060
typeof sessionStorage !== 'undefined' &&
6161
typeof crypto?.randomUUID === 'function'

0 commit comments

Comments
 (0)