@lokalise/fastify-extras
Version:
Opinionated set of fastify plugins, commonly used in Lokalise
36 lines (35 loc) • 1.82 kB
TypeScript
import type { TransactionObservabilityManager } from '@lokalise/node-core';
import type { FastifyPluginCallback } from 'fastify';
declare module 'fastify' {
interface FastifyInstance {
datadogTransactionManager: DatadogTransactionManager;
}
}
export interface DatadogTransactionManagerOptions {
isEnabled: boolean;
}
export declare class DatadogTransactionManager implements TransactionObservabilityManager {
private readonly isEnabled;
private readonly spanMap;
constructor(isEnabled: boolean);
static createDisabled(): DatadogTransactionManager;
/**
* @param transactionName - used for grouping similar transactions together
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
*/
start(transactionName: string, uniqueTransactionKey: string): void;
/**
* @param transactionName - used for grouping similar transactions together
* @param uniqueTransactionKey - used for identifying specific ongoing transaction. Must be reasonably unique to reduce possibility of collisions
* @param transactionGroup - group is used for grouping related transactions with different names
*/
startWithGroup(transactionName: string, uniqueTransactionKey: string, transactionGroup: string): void;
stop(uniqueTransactionKey: string): void;
addCustomAttribute(attrName: string, attrValue: string | number | boolean): void;
addCustomAttributes(uniqueTransactionKey: string, atts: {
[p: string]: string | number | boolean;
}): void;
setUserID(userId: string): void;
setControllerName(name: string, action: string): void;
}
export declare const datadogTransactionManagerPlugin: FastifyPluginCallback<DatadogTransactionManagerOptions>;