// Metro module 6464 (f6465). import "./errorCallback"; import "./Module6367"; import { getGlobalSingleton } from "./Module6369"; import { getClient } from "./Module6395"; import { getActiveSpan, getRootSpan, spanToJSON } from "./spanTimeInputToSeconds"; import { DEBUG_BUILD } from "./Module6396"; import { logger } from "./consoleSandbox_6368"; import { COUNTER_METRIC_TYPE, DISTRIBUTION_METRIC_TYPE, SET_METRIC_TYPE, GAUGE_METRIC_TYPE } from "./Module6465"; import { timestampInSeconds } from "./Module6382"; import { startSpanManual } from "./createChildOrRootSpan_6402"; import { handleCallbackErrors } from "./Module6403"; function $mk78656() { return () => new WeakMap(); } function $mk78657($env) { return () => $env[0].flush(); } function $mk78658($env) { return () => $env[0].close(); } const addToMetricsAggregator = function addToMetricsAggregator(a0, a1, a2, a3, r4 = {}) { const r12 = r4.client || getClient(); if (r12) { const activeSpan = getActiveSpan(); const r7 = activeSpan ? getRootSpan(activeSpan) : void 0; const transaction = r7 && spanToJSON(r7).description; const { unit, tags, timestamp } = r4; const options = r12.getOptions(); const { release, environment } = options; const r10 = {}; if (release) { r10.release = release; } if (environment) { r10.environment = environment; } if (transaction) { r10.transaction = transaction; } if (DEBUG_BUILD) { logger.log(`Adding value of ${a3} to ${a1} metric ${a2}`); } const globalSingleton = getGlobalSingleton("globalMetricsAggregators", $mk78656()); let r63 = globalSingleton.get(r12); if (!r63) { let env15760; const r65 = env15760 = {}; const r70 = new a0(r12); env15760[0] = r70; r12.on("flush", $mk78657(r65)); r12.on("close", $mk78658(r65)); globalSingleton.set(r12, r70); r63 = r70; } r63.add.call(r63, a1, a2, a3, unit, { ...r10, ...tags }, timestamp); } }; export const metrics = { increment: function increment(a0, a1, r4 = 1) { let r6 = r4; if (typeof r6 === "string") { r6 = parseInt(r4); } addToMetricsAggregator(a0, COUNTER_METRIC_TYPE, a1, r6, arguments[3]); }, distribution: function distribution(a0, a1, a2, a3) { addToMetricsAggregator(a0, DISTRIBUTION_METRIC_TYPE, a1, typeof a2 === "string" ? parseInt(a2) : a2, a3); }, set: function set(a0, a1, a2, a3) { addToMetricsAggregator(a0, SET_METRIC_TYPE, a1, a2, a3); }, gauge: function gauge(a0, a1, a2, a3) { addToMetricsAggregator(a0, GAUGE_METRIC_TYPE, a1, typeof a2 === "string" ? parseInt(a2) : a2, a3); }, timing: function timing(a0, a1, a2) { let c15761_4; let unit = arguments[3]; if (unit === void 0) { unit = "second"; } const r5 = arguments[4]; let c15761_3 = r5; c15761_4 = void 0; if (typeof a2 === "function") { const startTime = timestampInSeconds(); c15761_4 = startTime; return startSpanManual({ op: "metrics.timing", name: a1, startTime, onlyIfParent: true }, (c25887_0) => handleCallbackErrors(() => a2(), () => {}, () => { const r18 = timestampInSeconds(); const r10 = r18 - c15761_4; const r20 = { ...c15761_3, unit: "second" }; let r27 = r10; if (typeof r27 === "string") { r27 = parseInt(r10); } addToMetricsAggregator(a0, DISTRIBUTION_METRIC_TYPE, a1, r27, r20); c25887_0.end(r18); })); } const r8 = { ...r5, unit }; addToMetricsAggregator(a0, DISTRIBUTION_METRIC_TYPE, a1, typeof a2 === "string" ? parseInt(a2) : a2, r8); }, getMetricsAggregatorForClient: function getMetricsAggregatorForClient(a0, a1) { const globalSingleton = getGlobalSingleton("globalMetricsAggregators", $mk78656()); const r18 = globalSingleton.get(a0); if (r18) { return r18; } let env15759; const r19 = env15759 = {}; const r22 = new a1(a0); env15759[0] = r22; a0.on("flush", $mk78657(r19)); a0.on("close", $mk78658(r19)); globalSingleton.set(a0, r22); return r22; } };