@sentry/core
Version:
Base implementation for all Sentry JavaScript SDKs
43 lines (35 loc) • 1.25 kB
JavaScript
import { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT } from '../semanticAttributes.js';
import { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';
/**
* Adds a measurement to the current active transaction.
*/
function setMeasurement(name, value, unit) {
const activeSpan = getActiveSpan();
const rootSpan = activeSpan && getRootSpan(activeSpan);
if (rootSpan) {
rootSpan.addEvent(name, {
[ ]: value,
[ ]: unit ,
});
}
}
/**
* Convert timed events to measurements.
*/
function timedEventsToMeasurements(events) {
if (!events || events.length === 0) {
return undefined;
}
const measurements = {};
events.forEach(event => {
const attributes = event.attributes || {};
const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] ;
const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] ;
if (typeof unit === 'string' && typeof value === 'number') {
measurements[event.name] = { value, unit };
}
});
return measurements;
}
export { setMeasurement, timedEventsToMeasurements };
//# sourceMappingURL=measurement.js.map