From 60ceed1165748cf820da93b663ec08f950406be0 Mon Sep 17 00:00:00 2001 From: Mayur Kale Date: Thu, 5 Mar 2020 16:07:16 -0800 Subject: [PATCH] update Collector exporter to use Resource --- packages/opentelemetry-exporter-collector/package.json | 2 +- .../src/CollectorExporter.ts | 5 ++++- .../src/platform/browser/sendSpans.ts | 7 +++++-- .../src/platform/node/sendSpans.ts | 7 +++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/opentelemetry-exporter-collector/package.json b/packages/opentelemetry-exporter-collector/package.json index ef88ecfee19..594e0f4bbd1 100644 --- a/packages/opentelemetry-exporter-collector/package.json +++ b/packages/opentelemetry-exporter-collector/package.json @@ -49,7 +49,6 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/resources": "^0.4.0", "@babel/core": "^7.6.0", "@opentelemetry/resources": "^0.4.0", "@types/mocha": "^5.2.5", @@ -84,6 +83,7 @@ "@opentelemetry/api": "^0.4.0", "@opentelemetry/base": "^0.4.0", "@opentelemetry/core": "^0.4.0", + "@opentelemetry/resources": "^0.4.0", "@opentelemetry/tracing": "^0.4.0" } } diff --git a/packages/opentelemetry-exporter-collector/src/CollectorExporter.ts b/packages/opentelemetry-exporter-collector/src/CollectorExporter.ts index 82aee233998..4e2c71504f5 100644 --- a/packages/opentelemetry-exporter-collector/src/CollectorExporter.ts +++ b/packages/opentelemetry-exporter-collector/src/CollectorExporter.ts @@ -21,6 +21,7 @@ import { Attributes, Logger } from '@opentelemetry/api'; import * as collectorTypes from './types'; import { toCollectorSpan } from './transform'; import { onInit, onShutdown, sendSpans } from './platform/index'; +import { Resource } from '@opentelemetry/resources'; /** * Collector Exporter Config @@ -100,10 +101,12 @@ export class CollectorExporter implements SpanExporter { toCollectorSpan(span) ); this.logger.debug('spans to be sent', spansToBeSent); + const resource = + spansToBeSent.length > 0 ? spans[0].resource : Resource.empty(); // Send spans to [opentelemetry collector]{@link https://github.com/open-telemetry/opentelemetry-collector} // it will use the appropriate transport layer automatically depends on platform - sendSpans(spansToBeSent, resolve, reject, this); + sendSpans(spansToBeSent, resolve, reject, this, resource); } catch (e) { reject(e); } diff --git a/packages/opentelemetry-exporter-collector/src/platform/browser/sendSpans.ts b/packages/opentelemetry-exporter-collector/src/platform/browser/sendSpans.ts index ca8b1f9203d..e3836266cf2 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/browser/sendSpans.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/browser/sendSpans.ts @@ -19,6 +19,7 @@ import { Logger } from '@opentelemetry/api'; import { CollectorExporter } from '../../CollectorExporter'; import * as collectorTypes from '../../types'; import { VERSION } from '../../version'; +import { Resource } from '@opentelemetry/resources'; /** * function that is called once when {@link ExporterCollector} is initialised @@ -43,12 +44,14 @@ export function onShutdown(shutdownF: EventListener) { * @param onSuccess * @param onError * @param collectorExporter + * @param resource */ export function sendSpans( spans: collectorTypes.Span[], onSuccess: () => void, onError: (status?: number) => void, - collectorExporter: CollectorExporter + collectorExporter: CollectorExporter, + resource: Resource ) { const exportTraceServiceRequest: collectorTypes.ExportTraceServiceRequest = { node: { @@ -66,7 +69,7 @@ export function sendSpans( }, attributes: collectorExporter.attributes, }, - // resource: '', not implemented + resource: resource.labels, spans, }; diff --git a/packages/opentelemetry-exporter-collector/src/platform/node/sendSpans.ts b/packages/opentelemetry-exporter-collector/src/platform/node/sendSpans.ts index aaf23d2820a..363bcc5ce6c 100644 --- a/packages/opentelemetry-exporter-collector/src/platform/node/sendSpans.ts +++ b/packages/opentelemetry-exporter-collector/src/platform/node/sendSpans.ts @@ -25,6 +25,7 @@ import * as collectorTypes from '../../types'; import * as url from 'url'; import { VERSION } from '../../version'; +import { Resource } from '@opentelemetry/resources'; /** * function that is called once when {@link ExporterCollector} is initialised @@ -47,12 +48,14 @@ export function onShutdown(shutdownF: Function) {} * @param onSuccess * @param onError * @param collectorExporter + * @param resource */ export function sendSpans( spans: collectorTypes.Span[], onSuccess: () => void, onError: (status?: number) => void, - collectorExporter: CollectorExporter + collectorExporter: CollectorExporter, + resource: Resource ) { const exportTraceServiceRequest: collectorTypes.ExportTraceServiceRequest = { node: { @@ -70,7 +73,7 @@ export function sendSpans( }, attributes: collectorExporter.attributes, }, - // resource: '', not implemented + resource: resource.labels, spans, }; const body = JSON.stringify(exportTraceServiceRequest);