envelope.js 925 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { dsnToString, createEnvelope } from '@sentry/utils';
  2. import { serializeMetricBuckets } from './utils.js';
  3. /**
  4. * Create envelope from a metric aggregate.
  5. */
  6. function createMetricEnvelope(
  7. metricBucketItems,
  8. dsn,
  9. metadata,
  10. tunnel,
  11. ) {
  12. const headers = {
  13. sent_at: new Date().toISOString(),
  14. };
  15. if (metadata && metadata.sdk) {
  16. headers.sdk = {
  17. name: metadata.sdk.name,
  18. version: metadata.sdk.version,
  19. };
  20. }
  21. if (!!tunnel && dsn) {
  22. headers.dsn = dsnToString(dsn);
  23. }
  24. const item = createMetricEnvelopeItem(metricBucketItems);
  25. return createEnvelope(headers, [item]);
  26. }
  27. function createMetricEnvelopeItem(metricBucketItems) {
  28. const payload = serializeMetricBuckets(metricBucketItems);
  29. const metricHeaders = {
  30. type: 'statsd',
  31. length: payload.length,
  32. };
  33. return [metricHeaders, payload];
  34. }
  35. export { createMetricEnvelope };
  36. //# sourceMappingURL=envelope.js.map