@embrace-io/web-sdk
Version:
49 lines • 2.66 kB
TypeScript
import { LogSeverity } from "../../api-logs/manager/types.js";
import "../../api-logs/index.js";
import { AttributeValue, DiagLogger } from "@opentelemetry/api";
import { ReadableSpan } from "@opentelemetry/sdk-trace";
//#region src/managers/EmbraceLimitManager/types.d.ts
interface EmbraceLimitManagerArgs {
diag?: DiagLogger;
maxAllowed: Record<MaxLimitedType, number>;
maxLength: Record<LengthLimitedType, number>;
maxAttributes: Record<AttributeLimitedType, number>;
}
type LogLimitedType = 'error_log' | 'warning_log' | 'info_log';
type MaxLimitedType = LogLimitedType | 'exception' | 'span' | 'network_request' | 'breadcrumb' | 'session_property' | 'user_timing_mark' | 'user_timing_measure' | 'element_timing' | 'server_timing' | 'soft_navigation';
type LengthLimitedType = LogLimitedType | 'exception' | 'breadcrumb' | 'session_property_key' | 'session_property_value' | 'log_attribute_key' | 'log_attribute_value' | 'exception_attribute_key' | 'exception_attribute_value';
type AttributeLimitedType = LogLimitedType | 'exception';
type LimitedType = MaxLimitedType | LengthLimitedType | AttributeLimitedType;
type LimitOperation = 'drop' | 'truncate_string' | 'truncate_attributes';
type LimitedBreadcrumb = {
name: string;
};
type LimitedLog = {
message: string;
attributes: Record<string, AttributeValue | undefined>;
};
type LimitedException = {
message: string;
attributes: Record<string, AttributeValue | undefined>;
};
type LimitedUserSessionProperty = {
key: string;
value: string;
};
interface LimitManagerInternal {
dropReadableSpan: (span: ReadableSpan) => boolean;
limitLog: (message: string, severity: LogSeverity, attributes: Record<string, AttributeValue | undefined>) => LimitedLog | 'dropped';
limitException: (message: string, attributes: Record<string, AttributeValue | undefined>) => LimitedException | 'dropped';
limitUserSessionProperty: (key: string, value: string) => LimitedUserSessionProperty | 'dropped';
limitBreadcrumb: (name: string) => LimitedBreadcrumb | 'dropped';
limitUserTimingEntry: (entryType: 'mark' | 'measure') => boolean;
limitElementTimingEntry: () => boolean;
limitServerTimingEntry: () => boolean;
limitSoftNavigationEntry: () => boolean;
reset: () => void;
getDiagnosticCounts: () => Record<string, number>;
truncateString: (type: LengthLimitedType, body: string) => string;
}
//#endregion
export { AttributeLimitedType, EmbraceLimitManagerArgs, LengthLimitedType, LimitManagerInternal, LimitOperation, LimitedBreadcrumb, LimitedException, LimitedLog, LimitedType, LimitedUserSessionProperty, LogLimitedType, MaxLimitedType };
//# sourceMappingURL=types.d.ts.map