Skip to content

Commit c508521

Browse files
Merge pull request #251374 from hectorhdzg/hectorhdzg/logsupd
[Azure Monitor] Updating Node.js OpenTelemetry docs
2 parents f870633 + 9b4527b commit c508521

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

articles/azure-monitor/app/opentelemetry-add-modify.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ Dependencies
152152
- [Redis-4](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-redis-4)
153153
- [Azure SDK](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/instrumentation/opentelemetry-instrumentation-azure-sdk)
154154

155+
Auto instrumentation of Logs are currently only supported when using `applicationinsights` v3 Beta package. (https://www.npmjs.com/package/applicationinsights/v/beta)
155156
Logs
156157
- [Node.js console](https://nodejs.org/api/console.html)
157158
- [Bunyan](https://github.com/trentm/node-bunyan#readme)
@@ -234,12 +235,12 @@ Other OpenTelemetry Instrumentations are available [here](https://github.com/ope
234235

235236
```javascript
236237
const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
237-
const { metrics, trace } = require("@opentelemetry/api");
238+
const { metrics, trace, ProxyTracerProvider } = require("@opentelemetry/api");
238239
const { registerInstrumentations } = require( "@opentelemetry/instrumentation");
239240
const { ExpressInstrumentation } = require('@opentelemetry/instrumentation-express');
240241

241242
useAzureMonitor();
242-
const tracerProvider = trace.getTracerProvider().getDelegate();
243+
const tracerProvider = (trace.getTracerProvider() as ProxyTracerProvider).getDelegate();
243244
const meterProvider = metrics.getMeterProvider();
244245
registerInstrumentations({
245246
instrumentations: [
@@ -1376,12 +1377,13 @@ Adding one or more span attributes populates the `customDimensions` field in the
13761377

13771378
```typescript
13781379
const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
1379-
const { trace } = require("@opentelemetry/api");
1380+
const { trace, ProxyTracerProvider } = require("@opentelemetry/api");
13801381
const { ReadableSpan, Span, SpanProcessor } = require("@opentelemetry/sdk-trace-base");
1382+
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
13811383
const { SemanticAttributes } = require("@opentelemetry/semantic-conventions");
13821384

13831385
useAzureMonitor();
1384-
const tracerProvider = trace.getTracerProvider().getDelegate();
1386+
const tracerProvider = ((trace.getTracerProvider() as ProxyTracerProvider).getDelegate() as NodeTracerProvider);
13851387

13861388
class SpanEnrichingProcessor implements SpanProcessor{
13871389
forceFlush(): Promise<void>{
@@ -1579,27 +1581,23 @@ Logback, Log4j, and java.util.logging are [autoinstrumented](#logs). Attaching c
15791581
* [Log4j 1.2 MDC](https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html)
15801582

15811583
#### [Node.js](#tab/nodejs)
1582-
1583-
Attributes could be added only when calling manual track APIs only. Log attributes for console, bunyan and Winston are currently not supported.
15841584

15851585
```typescript
15861586
const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
15871587
const { logs } = require("@opentelemetry/api-logs");
1588+
import { Logger } from "@opentelemetry/sdk-logs";
15881589

15891590
useAzureMonitor();
1590-
const logger = logs.getLogger("testLogger");
1591+
const logger = (logs.getLogger("testLogger") as Logger);
15911592
const logRecord = {
1592-
body : "testEvent",
1593-
attributes: {
1593+
body: "testEvent",
1594+
attributes: {
15941595
"testAttribute1": "testValue1",
15951596
"testAttribute2": "testValue2",
15961597
"testAttribute3": "testValue3"
15971598
}
15981599
};
1599-
logger.emit({
1600-
name: "testEvent",
1601-
properties: attributes
1602-
});
1600+
logger.emit(logRecord);
16031601
```
16041602

16051603
#### [Python](#tab/python)
@@ -1708,9 +1706,9 @@ See [sampling overrides](java-standalone-config.md#sampling-overrides-preview) a
17081706
17091707
```typescript
17101708
const { useAzureMonitor, ApplicationInsightsOptions } = require("@azure/monitor-opentelemetry");
1709+
const { HttpInstrumentationConfig }= require("@opentelemetry/instrumentation-http");
17111710
const { IncomingMessage } = require("http");
17121711
const { RequestOptions } = require("https");
1713-
const { HttpInstrumentationConfig }= require("@opentelemetry/instrumentation-http");
17141712

17151713
const httpInstrumentationConfig: HttpInstrumentationConfig = {
17161714
enabled: true,

articles/azure-monitor/app/opentelemetry-configuration.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -627,23 +627,27 @@ For more information about Java, see the [Java supplemental documentation](java-
627627

628628
#### [Node.js](#tab/nodejs)
629629

630-
1. Install the [OpenTelemetry Collector Trace Exporter](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-http) package in your project.
630+
1. Install the [OpenTelemetry Collector Trace Exporter](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-http) and other OpenTelemetry packages in your project.
631631
632632
```sh
633+
npm install @opentelemetry/api
633634
npm install @opentelemetry/exporter-trace-otlp-http
635+
npm install @opentelemetry/@opentelemetry/sdk-trace-base
636+
npm install @opentelemetry/sdk-trace-node
634637
```
635638

636639
2. Add the following code snippet. This example assumes you have an OpenTelemetry Collector with an OTLP receiver running. For details, see the [example on GitHub](https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/otlp-exporter-node).
637640
638641
```typescript
639642
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
640-
const { trace } = require("@opentelemetry/api");
643+
const { trace, ProxyTracerProvider } = require("@opentelemetry/api");
641644
const { BatchSpanProcessor } = require('@opentelemetry/sdk-trace-base');
645+
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
642646
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
643647

644648
useAzureMonitor();
645649
const otlpExporter = new OTLPTraceExporter();
646-
const tracerProvider = trace.getTracerProvider().getDelegate();
650+
const tracerProvider = ((trace.getTracerProvider() as ProxyTracerProvider).getDelegate() as NodeTracerProvider);
647651
tracerProvider.addSpanProcessor(new BatchSpanProcessor(otlpExporter));
648652
```
649653

0 commit comments

Comments
 (0)