From 818b2d300edf43d6db76e31478d8965fd5f1bbe6 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Mon, 5 Feb 2024 15:13:28 -0500 Subject: [PATCH] Add service name as a resource in examples --- examples/context_propagation/cpp/client.cc | 6 +++-- examples/context_propagation/matlab/mymagic.m | 6 +++-- examples/metrics/async_metrics_example.m | 3 ++- examples/metrics/metrics_example.m | 24 ++++++++++--------- examples/trace/trace_example.m | 6 +++-- examples/webread/cpp/server.cc | 7 ++++-- examples/webread/matlab/webread_example.m | 6 +++-- 7 files changed, 36 insertions(+), 22 deletions(-) diff --git a/examples/context_propagation/cpp/client.cc b/examples/context_propagation/cpp/client.cc index 3508f88..879613d 100644 --- a/examples/context_propagation/cpp/client.cc +++ b/examples/context_propagation/cpp/client.cc @@ -1,4 +1,4 @@ -// Copyright 2023 The MathWorks, Inc. +// Copyright 2023-2024 The MathWorks, Inc. #include "opentelemetry/ext/http/client/http_client_factory.h" #include "opentelemetry/ext/http/common/url_parser.h" @@ -34,8 +34,10 @@ void InitTracer() opentelemetry::sdk::trace::SimpleSpanProcessorFactory::Create(std::move(exporter)); std::vector> processors; processors.push_back(std::move(processor)); + opentelemetry::sdk::common::AttributeMap servicename = { {"service.name", "OpenTelemetry-Matlab_examples"} }; + auto resource = opentelemetry::sdk::resource::Resource::Create(servicename); std::unique_ptr context = - opentelemetry::sdk::trace::TracerContextFactory::Create(std::move(processors)); + opentelemetry::sdk::trace::TracerContextFactory::Create(std::move(processors), resource); std::shared_ptr provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(context)); // Set the global trace provider diff --git a/examples/context_propagation/matlab/mymagic.m b/examples/context_propagation/matlab/mymagic.m index fb6daf5..3dd9685 100644 --- a/examples/context_propagation/matlab/mymagic.m +++ b/examples/context_propagation/matlab/mymagic.m @@ -2,7 +2,7 @@ % Web request handler function that takes context information (trace ID and span ID) % from incoming request and set as current context % -% Copyright 2023 The MathWorks, Inc. +% Copyright 2023-2024 The MathWorks, Inc. % initialize tracing runOnce(@initTracer); @@ -40,7 +40,9 @@ function initTracer % set up global TracerProvider -tp = opentelemetry.sdk.trace.TracerProvider(); +resource = dictionary("service.name", "OpenTelemetry-Matlab_examples"); +tp = opentelemetry.sdk.trace.TracerProvider(... + opentelemetry.sdk.trace.SimpleSpanProcessor, Resource=resource); setTracerProvider(tp); % set up global propagator diff --git a/examples/metrics/async_metrics_example.m b/examples/metrics/async_metrics_example.m index e4fa3b5..cde5653 100644 --- a/examples/metrics/async_metrics_example.m +++ b/examples/metrics/async_metrics_example.m @@ -25,7 +25,8 @@ exp = opentelemetry.exporters.otlp.defaultMetricExporter(); reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(exp, ... "Interval", seconds(5), "Timeout", seconds(2.5)); % exports every 5 seconds -mp = opentelemetry.sdk.metrics.MeterProvider(reader); +resource = dictionary("service.name", "OpenTelemetry-Matlab_examples"); +mp = opentelemetry.sdk.metrics.MeterProvider(reader, Resource=resource); setMeterProvider(mp); end diff --git a/examples/metrics/metrics_example.m b/examples/metrics/metrics_example.m index 43835b3..1c299c3 100644 --- a/examples/metrics/metrics_example.m +++ b/examples/metrics/metrics_example.m @@ -3,10 +3,10 @@ % updowncounter, and a histogram. It then enters a loop and updates the % value of the instruments at each iteration. -% Copyright 2023 The MathWorks, Inc. +% Copyright 2023-2024 The MathWorks, Inc. -% initialize meter provider during first run -runOnce(@initMetrics); +% initialize meter provider +initMetrics; % create meter and instruments m = opentelemetry.metrics.getMeter("metrics_example"); @@ -21,6 +21,9 @@ h.record(50 + 15*randn); % normal distribution with mean 50 and std 15 pause(5); end + +% clean up +cleanupMetrics; end @@ -31,15 +34,14 @@ "Interval", seconds(5), "Timeout", seconds(2.5)); % exports every 5 seconds % Use custom histogram bins v = opentelemetry.sdk.metrics.View(InstrumentType="histogram", HistogramBinEdges=0:10:100); -mp = opentelemetry.sdk.metrics.MeterProvider(reader, View=v); +resource = dictionary("service.name", "OpenTelemetry-Matlab_examples"); +mp = opentelemetry.sdk.metrics.MeterProvider(reader, View=v, ... + Resource=resource); setMeterProvider(mp); end -% This helper ensures the input function is only run once -function runOnce(fh) -persistent hasrun -if isempty(hasrun) - feval(fh); - hasrun = 1; -end +function cleanupMetrics +mp = opentelemetry.metrics.Provider.getMeterProvider(); +opentelemetry.sdk.common.Cleanup.shutdown(mp); % shutdown end + diff --git a/examples/trace/trace_example.m b/examples/trace/trace_example.m index 26258de..909a887 100644 --- a/examples/trace/trace_example.m +++ b/examples/trace/trace_example.m @@ -2,7 +2,7 @@ % This example creates spans to form a trace to instrument some simple % MATLAB code that fits a line through a cluster of data points. -% Copyright 2023 The MathWorks, Inc. +% Copyright 2023-2024 The MathWorks, Inc. % initialize tracing during first run runOnce(@initTracer); @@ -41,7 +41,9 @@ function initTracer % set up global TracerProvider -tp = opentelemetry.sdk.trace.TracerProvider(); +resource = dictionary("service.name", "OpenTelemetry-Matlab_examples"); +tp = opentelemetry.sdk.trace.TracerProvider(... + opentelemetry.sdk.trace.SimpleSpanProcessor, Resource=resource); setTracerProvider(tp); end diff --git a/examples/webread/cpp/server.cc b/examples/webread/cpp/server.cc index c4dce32..c41b896 100644 --- a/examples/webread/cpp/server.cc +++ b/examples/webread/cpp/server.cc @@ -1,4 +1,4 @@ -// Copyright 2023 The MathWorks, Inc. +// Copyright 2023-2024 The MathWorks, Inc. #include "server.h" #include "opentelemetry/trace/context.h" @@ -24,6 +24,7 @@ namespace using namespace opentelemetry::trace; namespace context = opentelemetry::context; +namespace common = opentelemetry::common; uint16_t server_port = 8800; constexpr const char *server_name = "localhost"; @@ -35,8 +36,10 @@ void InitTracer() opentelemetry::sdk::trace::SimpleSpanProcessorFactory::Create(std::move(exporter)); std::vector> processors; processors.push_back(std::move(processor)); + opentelemetry::sdk::common::AttributeMap servicename = { {"service.name", "OpenTelemetry-Matlab_examples"} }; + auto resource = opentelemetry::sdk::resource::Resource::Create(servicename); std::unique_ptr context = - opentelemetry::sdk::trace::TracerContextFactory::Create(std::move(processors)); + opentelemetry::sdk::trace::TracerContextFactory::Create(std::move(processors), resource); std::shared_ptr provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(context)); // Set the global trace provider diff --git a/examples/webread/matlab/webread_example.m b/examples/webread/matlab/webread_example.m index ddfe728..00ce65d 100644 --- a/examples/webread/matlab/webread_example.m +++ b/examples/webread/matlab/webread_example.m @@ -2,7 +2,7 @@ % This example shows how to propagate context (span ID and trace ID) % to another process when using webread. -% Copyright 2023 The MathWorks, Inc. +% Copyright 2023-2024 The MathWorks, Inc. % initialize tracing runOnce(@initTracer); @@ -26,7 +26,9 @@ function initTracer % set up global TracerProvider -tp = opentelemetry.sdk.trace.TracerProvider(); +resource = dictionary("service.name", "OpenTelemetry-Matlab_examples"); +tp = opentelemetry.sdk.trace.TracerProvider(... + opentelemetry.sdk.trace.SimpleSpanProcessor, Resource=resource); setTracerProvider(tp); % set up global propagator