@azure/monitor-opentelemetry-exporter 1.0.0-beta.7 → 1.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +47 -9
  2. package/dist/index.js +656 -261
  3. package/dist-esm/src/config.js +1 -14
  4. package/dist-esm/src/config.js.map +1 -1
  5. package/dist-esm/src/export/base.js +174 -0
  6. package/dist-esm/src/export/base.js.map +1 -0
  7. package/dist-esm/src/export/metric.js +64 -0
  8. package/dist-esm/src/export/metric.js.map +1 -0
  9. package/dist-esm/src/export/trace.js +25 -146
  10. package/dist-esm/src/export/trace.js.map +1 -1
  11. package/dist-esm/src/generated/applicationInsightsClient.js +36 -3
  12. package/dist-esm/src/generated/applicationInsightsClient.js.map +1 -1
  13. package/dist-esm/src/generated/index.js +0 -1
  14. package/dist-esm/src/generated/index.js.map +1 -1
  15. package/dist-esm/src/generated/models/index.js +35 -0
  16. package/dist-esm/src/generated/models/index.js.map +1 -1
  17. package/dist-esm/src/index.js +3 -0
  18. package/dist-esm/src/index.js.map +1 -1
  19. package/dist-esm/src/platform/nodejs/httpSender.js +5 -8
  20. package/dist-esm/src/platform/nodejs/httpSender.js.map +1 -1
  21. package/dist-esm/src/platform/nodejs/persist/fileAccessControl.js.map +1 -1
  22. package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js +2 -1
  23. package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js.map +1 -1
  24. package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js +10 -5
  25. package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
  26. package/dist-esm/src/sampling.js +81 -0
  27. package/dist-esm/src/sampling.js.map +1 -0
  28. package/dist-esm/src/utils/breezeUtils.js +3 -1
  29. package/dist-esm/src/utils/breezeUtils.js.map +1 -1
  30. package/dist-esm/src/utils/constants/applicationinsights.js +2 -1
  31. package/dist-esm/src/utils/constants/applicationinsights.js.map +1 -1
  32. package/dist-esm/src/utils/metricUtils.js +67 -0
  33. package/dist-esm/src/utils/metricUtils.js.map +1 -0
  34. package/dist-esm/src/utils/resourceUtils.js +35 -0
  35. package/dist-esm/src/utils/resourceUtils.js.map +1 -0
  36. package/dist-esm/src/utils/spanUtils.js +123 -44
  37. package/dist-esm/src/utils/spanUtils.js.map +1 -1
  38. package/package.json +20 -19
  39. package/types/monitor-opentelemetry-exporter.d.ts +181 -13
  40. package/CHANGELOG.md +0 -51
  41. package/dist-esm/src/generated/applicationInsightsClientContext.js +0 -34
  42. package/dist-esm/src/generated/applicationInsightsClientContext.js.map +0 -1
package/README.md CHANGED
@@ -12,7 +12,7 @@ This exporter package assumes your application is [already instrumented](https:/
12
12
 
13
13
  ### Currently supported environments
14
14
 
15
- - [LTS versions of Node.js](https://nodejs.org/about/releases/)
15
+ - [LTS versions of Node.js](https://github.com/nodejs/release#release-schedule)
16
16
  - Latest versions of Safari, Chrome, Edge, and Firefox.
17
17
 
18
18
  See our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details.
@@ -31,14 +31,11 @@ const { AzureMonitorTraceExporter } = require("@azure/monitor-opentelemetry-expo
31
31
  const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
32
32
  const { BatchSpanProcessor } = require("@opentelemetry/sdk-trace-base");
33
33
 
34
- // Use your existing provider
34
+
35
35
  const provider = new NodeTracerProvider({
36
- plugins: {
37
- https: {
38
- // Ignore Application Insights Ingestion Server
39
- ignoreOutgoingUrls: [new RegExp(/dc.services.visualstudio.com/i)]
40
- }
41
- }
36
+ resource: new Resource({
37
+ [SemanticResourceAttributes.SERVICE_NAME]: "basic-service",
38
+ }),
42
39
  });
43
40
  provider.register();
44
41
 
@@ -59,12 +56,53 @@ provider.addSpanProcessor(
59
56
 
60
57
  ### Metrics
61
58
 
62
- Coming Soon
59
+ Add the exporter to your existing OpenTelemetry tracer provider (`NodeTracerProvider` / `BasicTracerProvider`)
60
+
61
+ ```js
62
+ const { MeterProvider, PeriodicExportingMetricReader } = require("@opentelemetry/sdk-metrics");
63
+ const { Resource } = require("@opentelemetry/resources");
64
+ const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions");
65
+ const { AzureMonitorMetricExporter } = require("@azure/monitor-opentelemetry-exporter");
66
+
67
+ // Add the exporter into the MetricReader and register it with the MeterProvider
68
+ const provider = new MeterProvider();
69
+ const exporter = new AzureMonitorMetricExporter({
70
+ connectionString:
71
+ process.env["APPLICATIONINSIGHTS_CONNECTION_STRING"] || "<your connection string>",
72
+ });
73
+ const metricReaderOptions = {
74
+ exporter: exporter,
75
+ };
76
+ const metricReader = new PeriodicExportingMetricReader(metricReaderOptions);
77
+ provider.addMetricReader(metricReader);
78
+ );
79
+ ```
63
80
 
64
81
  ### Logs
65
82
 
66
83
  Coming Soon
67
84
 
85
+ ### Sampling
86
+
87
+ You can enable sampling to limit the amount of telemetry records you receive. In order to enable correct sampling in Application Insights, use the `ApplicationInsightsSampler` as shown below.
88
+
89
+ ```js
90
+ const { ApplicationInsightsSampler } = require("@azure/monitor-opentelemetry-exporter");
91
+ const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
92
+ const { BatchSpanProcessor } = require("@opentelemetry/sdk-trace-base");
93
+
94
+ // Sampler expects a sample rate of between 0 and 1 inclusive
95
+ // A rate of 0.75 means approximately 75 % of your traces will be sent
96
+ const aiSampler = new ApplicationInsightsSampler(0.75);
97
+ const provider = new NodeTracerProvider({
98
+ sampler: aiSampler,
99
+ resource: new Resource({
100
+ [SemanticResourceAttributes.SERVICE_NAME]: "basic-service",
101
+ }),
102
+ });
103
+ provider.register();
104
+ ```
105
+
68
106
  ## Examples
69
107
 
70
108
  For complete samples of a few champion scenarios, see the [`samples/`](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/monitor/monitor-opentelemetry-exporter/samples/) folder.