import { RequestContext } from "../pipeline/requestContext"; import { ITrackerAdapter } from '../instrumentations/trackers/index'; import { ISpanTracker, TrackerId, SpanKind, ITracker } from "./common"; export declare class Span implements ISpanTracker { context: RequestContext; kind: SpanKind; private name; private _logger; private tags; private startTick; private startTime; private error; private metrics; private _id; private _tracker; action: string; private commandType; readonly id: TrackerId; readonly tracker: ITrackerAdapter; private constructor(); static createRequestTracker(context: RequestContext, parentId: TrackerId): Span; createCommandTracker(context: RequestContext, commandName: string): Span; createCustomTracker(context: RequestContext, name: string, tags?: { [index: string]: string; }): ITracker; trackAction(action: string, tags?: { [index: string]: string; }): void; private convertKind(); injectHeaders(headers: (name: string | any, value?: string) => any): void; dispose(): void; endCommand(): void; private endRequest(); addHttpRequestTags(uri: string, verb: string): void; addProviderCommandTags(address: string, schema: string, tenant: string): void; addServiceCommandTags(serviceName: string, serviceVersion: string): void; addCustomCommandTags(commandType: string, tags: { [key: string]: string; }): void; addTag(name: string, value: string): void; addTags(tags: any): void; private logAction(action, message); /** * Log an error * * @param {Error} error Error instance * @param {string} [msg] Additional message * */ logError(error: Error, msg?: () => string): void; /** * Log a message info * * @param {string} msg Message format (can include %s, %j ...) * @param {...Array} params Message parameters * */ logInfo(msg: () => string): void; /** * Log a verbose message. Verbose message are enable by service configuration property : enableVerboseLog * * @param {any} context Current context * @param {string} msg Message format (can include %s, %j ...) * @param {...Array} params Message parameters * */ logVerbose(msg: () => string): void; readonly now: number; readonly durationInMs: number; private randomTraceId(); }