@aws/aws-distro-opentelemetry-node-autoinstrumentation
Version:
This package provides Amazon Web Services distribution of the OpenTelemetry Node Instrumentation, which allows for auto-instrumentation of NodeJS applications.
39 lines • 2.16 kB
TypeScript
import { ExportResult } from '@opentelemetry/core';
import { Resource } from '@opentelemetry/resources';
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
import { MetricAttributeGenerator } from './metric-attribute-generator';
/**
* This exporter will update a span with metric attributes before exporting. It depends on a
* {@link SpanExporter} being provided on instantiation, which the AwsMetricAttributesSpanExporter will
* delegate export to. Also, a {@link MetricAttributeGenerator} must be provided, which will provide a
* means to determine attributes which should be applied to the span. Finally, a {@link Resource} must
* be provided, which is used to generate metric attributes.
*
* <p>This exporter should be coupled with the {@link AwsSpanMetricsProcessor} using the same
* {@link MetricAttributeGenerator}. This will result in metrics and spans being produced with
* common attributes.
*/
export declare class AwsMetricAttributesSpanExporter implements SpanExporter {
private delegate;
private generator;
private resource;
/** Use {@link AwsMetricAttributesSpanExporterBuilder} to construct this exporter. */
static create(delegate: SpanExporter, generator: MetricAttributeGenerator, resource: Resource): AwsMetricAttributesSpanExporter;
private constructor();
export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
shutdown(): Promise<void>;
forceFlush(): Promise<void>;
private addMetricAttributes;
private copyAttributesWithLocalRoot;
/**
* {@link export} works with a {@link ReadableSpan}, which does not permit modification. However, we
* need to add derived metric attributes to the span. However, we are still able to modify the
* attributes in the span (the attributes itself is readonly, so it cannot be outright replaced).
* This may be risky.
*
* <p>See https://github.com/open-telemetry/opentelemetry-specification/issues/1089 for more
* context on this approach.
*/
private static wrapSpanWithAttributes;
}
//# sourceMappingURL=aws-metric-attributes-span-exporter.d.ts.map