@opentelemetry/sdk-metrics
Version:
40 lines • 1.63 kB
TypeScript
import { Context, Attributes } from '@opentelemetry/api';
/**
* The {@link AttributesProcessor} is responsible for customizing which
* attribute(s) are to be reported as metrics dimension(s) and adding
* additional dimension(s) from the {@link Context}.
*/
export interface IAttributesProcessor {
/**
* Process the metric instrument attributes.
*
* @param incoming The metric instrument attributes.
* @param context The active context when the instrument is synchronous.
* `undefined` otherwise.
*/
process: (incoming: Attributes, context?: Context) => Attributes;
}
/**
* @internal
*
* Create an {@link IAttributesProcessor} that acts as a simple pass-through for attributes.
*/
export declare function createNoopAttributesProcessor(): IAttributesProcessor;
/**
* @internal
*
* Create an {@link IAttributesProcessor} that applies all processors from the provided list in order.
*
* @param processors Processors to apply in order.
*/
export declare function createMultiAttributesProcessor(processors: IAttributesProcessor[]): IAttributesProcessor;
/**
* Create an {@link IAttributesProcessor} that filters by allowed attribute names and drops any names that are not in the
* allow list.
*/
export declare function createAllowListAttributesProcessor(attributeAllowList: string[]): IAttributesProcessor;
/**
* Create an {@link IAttributesProcessor} that drops attributes based on the names provided in the deny list
*/
export declare function createDenyListAttributesProcessor(attributeDenyList: string[]): IAttributesProcessor;
//# sourceMappingURL=AttributesProcessor.d.ts.map