Skip to content

Commit 58392ca

Browse files
committed
Finishing add resource property to metrics
1 parent f21e7c6 commit 58392ca

File tree

5 files changed

+75
-5
lines changed

5 files changed

+75
-5
lines changed

sdk/metrics/+opentelemetry/+sdk/+metrics/MeterProvider.m

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@
1010

1111
properties (Access=public)
1212
MetricReader
13-
end
14-
15-
properties (Access=public)
1613
Resource
1714
end
1815

sdk/metrics/include/opentelemetry-matlab/sdk/metrics/MeterProviderProxy.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
#include "opentelemetry/sdk/metrics/meter_provider_factory.h"
2323
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
2424
#include "opentelemetry/sdk/resource/resource.h"
25+
#include "opentelemetry/sdk/metrics/view/view_registry.h"
26+
#include "opentelemetry/sdk/metrics/view/view_registry_factory.h"
2527

2628

2729
#include "opentelemetry-matlab/metrics/MeterProxy.h"

sdk/metrics/src/MeterProviderProxy.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ libmexclass::proxy::MakeResult MeterProviderProxy::make(const libmexclass::proxy
3636

3737
auto reader = std::static_pointer_cast<PeriodicExportingMetricReaderProxy>(
3838
libmexclass::proxy::ProxyManager::getProxy(readerid))->getInstance();
39-
auto p = metrics_sdk::MeterProviderFactory::Create();
39+
40+
auto view = metrics_sdk::ViewRegistryFactory::Create();
41+
auto p = metrics_sdk::MeterProviderFactory::Create(std::move(view), resource_custom);
4042
auto *p_sdk = static_cast<metrics_sdk::MeterProvider *>(p.get());
4143
p_sdk->AddMetricReader(std::move(reader));
42-
44+
4345
auto p_out = nostd::shared_ptr<metrics_api::MeterProvider>(std::move(p));
4446
out = std::make_shared<MeterProviderProxy>(p_out);
4547
}

test/myoutput.json

Whitespace-only changes.

test/tmetrics_sdk.m

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
classdef tmetrics_sdk < matlab.unittest.TestCase
2+
% tests for metrics SDK
3+
4+
% Copyright 2023 The MathWorks, Inc.
5+
6+
properties
7+
OtelConfigFile
8+
JsonFile
9+
PidFile
10+
OtelcolName
11+
Otelcol
12+
ListPid
13+
ReadPidList
14+
ExtractPid
15+
Sigint
16+
Sigterm
17+
end
18+
19+
methods (TestClassSetup)
20+
function setupOnce(testCase)
21+
commonSetupOnce(testCase);
22+
end
23+
end
24+
25+
methods (TestMethodTeardown)
26+
function teardown(testCase)
27+
commonTeardown(testCase);
28+
end
29+
end
30+
31+
methods (Test)
32+
function testCustomResource(testCase)
33+
% testCustomResource: check custom resources are included in
34+
% emitted metrics
35+
commonSetup(testCase)
36+
37+
customkeys = ["foo" "bar"];
38+
customvalues = [1 5];
39+
exporter = opentelemetry.exporters.otlp.OtlpHttpMetricExporter();
40+
reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(exporter, ...
41+
"Interval", seconds(2), "Timeout", seconds(1));
42+
mp = opentelemetry.sdk.metrics.MeterProvider(reader, ...
43+
"Resource", dictionary(customkeys, customvalues));
44+
45+
m = getMeter(mp, "mymeter");
46+
c = createCounter(m, "mycounter");
47+
48+
% create testing value
49+
val = 10;
50+
51+
% add value and attributes
52+
c.add(val);
53+
54+
pause(2.5);
55+
56+
% perform test comparisons
57+
results = readJsonResults(testCase);
58+
results = results{1};
59+
60+
resourcekeys = string({results.resourceMetrics.resource.attributes.key});
61+
for i = length(customkeys)
62+
idx = find(resourcekeys == customkeys(i));
63+
verifyNotEmpty(testCase, idx);
64+
verifyEqual(testCase, results.resourceMetrics.resource.attributes(idx).value.doubleValue, customvalues(i));
65+
end
66+
end
67+
68+
end
69+
end

0 commit comments

Comments
 (0)