@comprehend/telemetry-browser
Version:
Integration of comprehend.dev with OpenTelemetry in browser environments.
70 lines (69 loc) • 1.82 kB
TypeScript
import { HrTime } from "@opentelemetry/api";
export type ObservationInputMessage = InitMessage | NewObservedEntityMessage | NewObservedInteractionMessage | ObservationMessage;
export type ObservationOutputMessage = InitAck | ObservedAck | ObservationsAck;
export interface InitMessage {
event: "init";
protocolVersion: 1;
token: string;
}
export interface NewObservedEntityMessage {
event: "new-entity";
type: string;
hash: string;
}
export interface NewObservedServiceMessage extends NewObservedEntityMessage {
type: "service";
name: string;
namespace?: string;
environment?: string;
}
export interface NewObservedHttpServiceMessage extends NewObservedEntityMessage {
type: "http-service";
protocol: string;
host: string;
port: number;
}
export interface NewObservedInteractionMessage {
event: "new-interaction";
type: string;
hash: string;
from: string;
to: string;
}
export interface NewObservedHttpRequestMessage extends NewObservedInteractionMessage {
type: "http-request";
}
export interface ObservationMessage {
event: "observations";
seq: number;
observations: Array<Observation>;
}
export interface Observation {
type: string;
subject: string;
timestamp: HrTime;
errorMessage?: string;
errorType?: string;
stack?: string;
}
export interface HttpClientObservation extends Observation {
type: "http-client";
path: string;
method: string;
duration: HrTime;
status?: number;
httpVersion?: string;
requestBytes?: number;
responseBytes?: number;
}
export interface InitAck {
type: "ack-authorized";
}
export interface ObservedAck {
type: "ack-observed";
hash: string;
}
export interface ObservationsAck {
type: "ack-observations";
seq: number;
}