@hotmeshio/hotmesh
Version:
Serverless Workflow
53 lines (52 loc) • 2.53 kB
TypeScript
import { ActivityMetadata, ActivityType, Consumes } from '../../types/activity';
import { JobState } from '../../types/job';
import { StringAnyType, StringScalarType, StringStringType } from '../../types/serializer';
import { StreamData, StreamRole } from '../../types/stream';
import { Span, Context } from '../../types/telemetry';
declare class TelemetryService {
span: Span;
jobSpan: Span;
config: ActivityType;
traceId: string | null;
spanId: string | null;
appId: string;
metadata: ActivityMetadata;
context: JobState;
leg: number;
constructor(appId: string, config?: ActivityType, metadata?: ActivityMetadata, context?: JobState);
/**
* too chatty for production; only output traces, jobs, triggers and workers
*/
private shouldCreateSpan;
private static createNoopSpan;
getJobParentSpanId(): string | undefined;
getActivityParentSpanId(leg: number): string | undefined;
getTraceId(): string | undefined;
startJobSpan(): TelemetryService;
/**
* Traces an activity.
* @private
*/
static traceActivity(appId: string, attributes: StringScalarType, activityId: string, traceId: string, spanId: string, index?: number): Promise<boolean>;
startActivitySpan(leg?: number): TelemetryService;
startStreamSpan(data: StreamData, role: StreamRole): TelemetryService;
startSpan(traceId: string, spanId: string, spanName: string, attributes: StringScalarType, bCreate?: boolean): Span;
mapActivityAttributes(): void;
setActivityAttributes(attributes: StringScalarType): void;
setStreamAttributes(attributes: StringScalarType): void;
setJobAttributes(attributes: StringScalarType): void;
endJobSpan(): void;
endActivitySpan(): void;
endStreamSpan(): void;
endSpan(span: Span): void;
getParentSpanContext(): undefined | Context;
getSpanAttrs(leg: number): StringAnyType;
getStreamSpanAttrs(input: StreamData): StringAnyType;
setTelemetryContext(span: Span, leg: number): void;
setActivityError(message: string): void;
setStreamError(message: string): void;
static addTargetTelemetryPaths(consumes: Consumes, config: ActivityType, metadata: ActivityMetadata, leg: number): void;
static bindJobTelemetryToState(state: StringStringType, config: ActivityType, context: JobState): void;
static bindActivityTelemetryToState(state: StringAnyType, config: ActivityType, metadata: ActivityMetadata, context: JobState, leg: number): void;
}
export { TelemetryService };