@@ -146,65 +146,85 @@ function testCustomResource(testCase)
146146 end
147147 end
148148
149- % function testViewCounter(testCase)
150- % % testCustomResource: check custom resources are included in
151- % % emitted metrics
152- % commonSetup(testCase)
153- %
154- % exporter = opentelemetry.exporters.otlp.OtlpHttpMetricExporter();
155- % reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(exporter, ...
156- % "Interval", seconds(2), "Timeout", seconds(1));
157- % mp = opentelemetry.sdk.metrics.MeterProvider(reader);
158- %
159- % m = getMeter(mp, "mymeter");
160- % c = createCounter(m, "mycounter");
161- %
162- % % create testing value
163- % val = 10;
164- %
165- % % add value and attributes
166- % c.add(val);
167- %
168- % pause(2.5);
169- %
170- % view = opentelemetry.sdk.metrics.View("View", "my View", "Unit", "Instrument", "kCounter", "mymeter", "", "", ["One" "Two" "Three"], "kDrop", [0 100 200 300 400 500]);
171- %
172- % addView(mp, view);
173- %
174- % clear mp;
175- %
176- % % % TODO: add test comparisons
177- % end
178-
179- % function testViewHistogram(testCase)
180- % % testCustomResource: check custom resources are included in
181- % % emitted metrics
182- % commonSetup(testCase)
183- %
184- % exporter = opentelemetry.exporters.otlp.OtlpHttpMetricExporter();
185- % reader = opentelemetry.sdk.metrics.PeriodicExportingMetricReader(exporter, ...
186- % "Interval", seconds(2), "Timeout", seconds(1));
187- % mp = opentelemetry.sdk.metrics.MeterProvider(reader);
188- % m = mp.getMeter("mymeter");
189- % hist = m.createHistogram("histogram");
190- %
191- % % create value for histogram
192- % val = 1;
193- %
194- % % record value
195- % hist.record(val);
196- %
197- % % wait for collector response
198- % pause(2.5);
199- %
200- % view = opentelemetry.sdk.metrics.View("View", "my View", "Unit", "Instrument", "kHistogram", "mymeter", "", "", ["One" "Two" "Three"], "kHistogram", [0 100 200 300 400 500]);
201- %
202- % addView(mp, view);
203- %
204- % clear mp;
205- %
206- % % % TODO: add test comparisons
207- % end
149+ function testViewBasic(testCase )
150+ mp = opentelemetry .sdk .metrics .MeterProvider(testCase .ShortIntervalReader );
151+
152+ view_name = " counter_view" ;
153+ view_description = " view_description" ;
154+ view = opentelemetry .sdk .metrics .View(Name = " counter_view" , Description= " view_description" , InstrumentName= " mycounter" , InstrumentType= " Counter" , MeterName= " mymeter" , MeterVersion= " 1.2.0" , MeterSchemaURL= " " , Aggregation= " Sum" );
155+
156+ addView(mp , view );
157+
158+ m = getMeter(mp , " mymeter" , " 1.2.0" , " " );
159+ c = createCounter(m , " mycounter" );
160+
161+ % add value and attributes
162+ val = 10 ;
163+ c .add(val );
164+
165+ pause(2.5 );
166+
167+ clear m ;
168+ results = readJsonResults(testCase );
169+ results = results{end };
170+
171+ % verify view name and description
172+ verifyEqual(testCase , string(results .resourceMetrics .scopeMetrics .metrics .name ), view_name );
173+ verifyEqual(testCase , string(results .resourceMetrics .scopeMetrics .metrics .description ), view_description );
174+
175+ % fetch datapoint
176+ dp = results .resourceMetrics .scopeMetrics .metrics .sum .dataPoints ;
177+
178+ % verify counter value
179+ verifyEqual(testCase , dp .asDouble , val );
180+ end
181+
182+
183+ function testViewHistogram(testCase )
184+ mp = opentelemetry .sdk .metrics .MeterProvider(testCase .ShortIntervalReader );
185+
186+ view_name = " histogram_view" ;
187+ view_description = " view_description" ;
188+ bin_edges = [0 ; 100 ; 200 ; 300 ; 400 ; 500 ];
189+ view = opentelemetry .sdk .metrics .View(Name = " histogram_view" , Description= " view_description" , InstrumentName= " myhistogram" , InstrumentType= " Histogram" , MeterName= " mymeter" , Aggregation= " Histogram" , HistogramBinEdges= bin_edges );
190+
191+ addView(mp , view );
192+
193+ m = mp .getMeter(" mymeter" );
194+ hist = m .createHistogram(" myhistogram" );
195+
196+ % record values
197+ hist .record(0 );
198+ hist .record(200 );
199+ hist .record(201 );
200+ hist .record(401 );
201+ hist .record(402 );
202+
203+ % wait for collector response
204+ pause(2.5 );
205+
206+ clear m ;
207+ results = readJsonResults(testCase );
208+ results = results{end };
209+
210+ % verify view name and description
211+ verifyEqual(testCase , string(results .resourceMetrics .scopeMetrics .metrics .name ), view_name );
212+ verifyEqual(testCase , string(results .resourceMetrics .scopeMetrics .metrics .description ), view_description );
213+
214+ % fetch datapoint
215+ dp = results .resourceMetrics .scopeMetrics .metrics .histogram .dataPoints ;
216+
217+ % verify histogram sum
218+ expected_sum = 1204 ;
219+ verifyEqual(testCase , dp .sum , expected_sum );
220+
221+ % verify histogram bounds
222+ verifyEqual(testCase , dp .explicitBounds , bin_edges );
223+
224+ % verify histogram buckets
225+ expected_buckets = {' 1' ; ' 0' ; ' 1' ; ' 1' ; ' 0' ; ' 2' ; ' 0' };
226+ verifyEqual(testCase , dp .bucketCounts , expected_buckets );
227+ end
208228
209229 function testShutdown(testCase )
210230 % testShutdown: shutdown method should stop exporting
0 commit comments