in src/shippers/elastic_v3/common/src/report_telemetry_counters.ts [17:48]
export function createTelemetryCounterHelper(telemetryCounter$: Subject<TelemetryCounter>, source: string) {
/**
* Triggers a telemetry counter for each event type.
* @param events The events to trigger the telemetry counter for.
* @param type The type of telemetry counter to trigger.
* @param code The success or error code for additional detail about the result.
* @param error The error that occurred, if any.
*/
return (
events: Event[],
{
type,
code,
error,
}: {
type?: TelemetryCounterType;
code?: string;
error?: Error;
} = {}
) => {
const eventTypeCounts = countEventTypes(events);
Object.entries(eventTypeCounts).forEach(([eventType, count]) => {
telemetryCounter$.next({
source,
type: type ?? (error ? 'failed' : 'succeeded'),
code: code ?? error?.message ?? 'OK',
count,
event_type: eventType,
});
});
};
}