Skip to content

Commit d30eb60

Browse files
authored
Build with otel-cpp v1.11.0 & use Cumulative temporality for UpDownCounter (#329)
1 parent fb1f7a9 commit d30eb60

File tree

6 files changed

+29
-17
lines changed

6 files changed

+29
-17
lines changed

.github/workflows/geneva_metrics.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ on:
1111
paths:
1212
- "exporters/geneva/**"
1313
- ".github/workflows/geneva_metrics.yml"
14-
15-
cmake_linux:
14+
jobs:
15+
cmake_linux:
1616
name: CMake on Linux
1717
runs-on: ubuntu-latest
1818
steps:
@@ -24,7 +24,7 @@ on:
2424
uses: actions/checkout@v3
2525
with:
2626
repository: "open-telemetry/opentelemetry-cpp"
27-
ref: "v1.8.2"
27+
ref: "v1.11.0"
2828
path: "otel_cpp"
2929
submodules: "recursive"
3030
- name: setup
@@ -34,13 +34,15 @@ on:
3434
ca-certificates wget git valgrind lcov
3535
- name: run tests
3636
run: |
37+
sudo $GITHUB_WORKSPACE/otel_cpp/ci/setup_cmake.sh
3738
mkdir -p "$GITHUB_WORKSPACE/otel_cpp/build"
3839
cd "$GITHUB_WORKSPACE/otel_cpp/build"
39-
cmake .. -DCMAKE_BUILD_TYPE=Debug
40-
cmake --build . -j --config Debug
41-
cmake --install . --prefix "$HOME/prebuilt-otel" --config Debug
40+
cmake .. -DOPENTELEMETRY_INSTALL=ON
41+
cmake --build . -j${nproc}
42+
cmake --install . --prefix "$HOME/prebuilt-otel"
4243
mkdir -p "$GITHUB_WORKSPACE/otel_cpp_contrib/exporters/geneva/build"
4344
cd "$GITHUB_WORKSPACE/otel_cpp_contrib/exporters/geneva/build"
44-
cmake .. "-DCMAKE_PREFIX_PATH=$HOME/prebuilt-otel" -DCMAKE_BUILD_TYPE=Debug \
45+
cmake .. "-DCMAKE_PREFIX_PATH=$HOME/prebuilt-otel" \
4546
-DBUILD_TESTING=ON -DBUILD_EXAMPLE=ON
46-
cmake --build . -j --config Debug
47+
cmake --build . -j${nproc}
48+
ctest

exporters/geneva/example/example_metrics.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ void initMetrics(const std::string &name, const std::string &account_name) {
5555
std::string counter_name = name + "_counter";
5656
std::unique_ptr<metric_sdk::InstrumentSelector> instrument_selector{
5757
new metric_sdk::InstrumentSelector(metric_sdk::InstrumentType::kCounter,
58-
counter_name)};
58+
counter_name, "")};
5959
std::unique_ptr<metric_sdk::MeterSelector> meter_selector{
6060
new metric_sdk::MeterSelector(name, version, schema)};
6161
std::unique_ptr<metric_sdk::View> sum_view{new metric_sdk::View{
62-
name, "description", metric_sdk::AggregationType::kSum}};
62+
name, "description", "", metric_sdk::AggregationType::kSum}};
6363
p->AddView(std::move(instrument_selector), std::move(meter_selector),
6464
std::move(sum_view));
6565

@@ -68,11 +68,11 @@ void initMetrics(const std::string &name, const std::string &account_name) {
6868
std::unique_ptr<metric_sdk::InstrumentSelector>
6969
observable_instrument_selector{new metric_sdk::InstrumentSelector(
7070
metric_sdk::InstrumentType::kObservableCounter,
71-
observable_counter_name)};
71+
observable_counter_name, "")};
7272
std::unique_ptr<metric_sdk::MeterSelector> observable_meter_selector{
7373
new metric_sdk::MeterSelector(name, version, schema)};
7474
std::unique_ptr<metric_sdk::View> observable_sum_view{new metric_sdk::View{
75-
name, "description", metric_sdk::AggregationType::kSum}};
75+
name, "description", "", metric_sdk::AggregationType::kSum}};
7676
p->AddView(std::move(observable_instrument_selector),
7777
std::move(observable_meter_selector),
7878
std::move(observable_sum_view));
@@ -81,7 +81,7 @@ void initMetrics(const std::string &name, const std::string &account_name) {
8181
std::string histogram_name = name + "_histogram";
8282
std::unique_ptr<metric_sdk::InstrumentSelector> histogram_instrument_selector{
8383
new metric_sdk::InstrumentSelector(metric_sdk::InstrumentType::kHistogram,
84-
histogram_name)};
84+
histogram_name, "")};
8585
std::unique_ptr<metric_sdk::MeterSelector> histogram_meter_selector{
8686
new metric_sdk::MeterSelector(name, version, schema)};
8787
std::shared_ptr<opentelemetry::sdk::metrics::AggregationConfig>
@@ -92,7 +92,7 @@ void initMetrics(const std::string &name, const std::string &account_name) {
9292
->boundaries_ = std::vector<double>{0.0, 50.0, 100.0, 250.0, 500.0,
9393
750.0, 1000.0, 2500.0, 5000.0, 10000.0};
9494
std::unique_ptr<metric_sdk::View> histogram_view{new metric_sdk::View{
95-
name, "description", metric_sdk::AggregationType::kHistogram,
95+
name, "description", "", metric_sdk::AggregationType::kHistogram,
9696
aggregation_config}};
9797
p->AddView(std::move(histogram_instrument_selector),
9898
std::move(histogram_meter_selector), std::move(histogram_view));

exporters/geneva/example/stress_test_linux.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@
2828
#include <chrono>
2929
#include <sys/times.h>
3030

31+
#ifdef HAVE_BOOST
3132
#include <boost/uuid/uuid.hpp>
3233
#include <boost/uuid/uuid_io.hpp>
3334
#include <boost/uuid/uuid_generators.hpp>
35+
#endif
3436

3537
namespace metrics_sdk = opentelemetry::sdk::metrics;
3638
namespace nostd = opentelemetry::nostd;

exporters/geneva/include/opentelemetry/exporters/geneva/metrics/exporter.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
#pragma once
55

66
#include "opentelemetry/common/spin_lock_mutex.h"
7+
#include "opentelemetry/common/timestamp.h"
78
#include "opentelemetry/exporters/geneva/metrics/connection_string_parser.h"
89
#include "opentelemetry/exporters/geneva/metrics/data_transport.h"
910
#include "opentelemetry/exporters/geneva/metrics/exporter_options.h"
1011
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
12+
#include "opentelemetry/sdk/metrics/data/metric_data.h"
13+
1114

1215
OPENTELEMETRY_BEGIN_NAMESPACE
1316
namespace exporter {

exporters/geneva/src/exporter.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#ifdef _WIN32
88
#include "opentelemetry/exporters/geneva/metrics/etw_data_transport.h"
99
#endif
10-
#include "opentelemetry/metrics/meter_provider.h"
10+
#include "opentelemetry/sdk/metrics/export/metric_producer.h"
1111
#include "opentelemetry/sdk_config.h"
1212

1313
#include <memory>
@@ -46,6 +46,10 @@ Exporter::Exporter(const ExporterOptions &options)
4646

4747
sdk::metrics::AggregationTemporality Exporter::GetAggregationTemporality(
4848
sdk::metrics::InstrumentType instrument_type) const noexcept {
49+
if (instrument_type == sdk::metrics::InstrumentType::kUpDownCounter)
50+
{
51+
return sdk::metrics::AggregationTemporality::kCumulative;
52+
}
4953
return sdk::metrics::AggregationTemporality::kDelta;
5054
}
5155

exporters/geneva/test/common/generate_metrics.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "opentelemetry/sdk/metrics/export/metric_producer.h"
33
#include "opentelemetry/sdk/metrics/instruments.h"
44
#include "opentelemetry/sdk/resource/resource.h"
5+
#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h"
56

67
#include<vector>
78

@@ -178,7 +179,7 @@ GenerateSumDataLongMetricsNonMonotonic(
178179
kUpDownCounterLongInstrumentUnit,
179180
opentelemetry::sdk::metrics::InstrumentType::kUpDownCounter,
180181
opentelemetry::sdk::metrics::InstrumentValueType::kLong},
181-
opentelemetry::sdk::metrics::AggregationTemporality::kDelta,
182+
opentelemetry::sdk::metrics::AggregationTemporality::kCumulative,
182183
opentelemetry::common::SystemTimestamp{std::chrono::system_clock::now()},
183184
opentelemetry::common::SystemTimestamp{std::chrono::system_clock::now()},
184185
std::vector<opentelemetry::sdk::metrics::PointDataAttributes>{
@@ -233,7 +234,7 @@ GenerateSumDataDoubleMetricsNonMonotonic(
233234
kUpDownCounterDoubleInstrumentUnit,
234235
opentelemetry::sdk::metrics::InstrumentType::kUpDownCounter,
235236
opentelemetry::sdk::metrics::InstrumentValueType::kDouble},
236-
opentelemetry::sdk::metrics::AggregationTemporality::kDelta,
237+
opentelemetry::sdk::metrics::AggregationTemporality::kCumulative,
237238
opentelemetry::common::SystemTimestamp{std::chrono::system_clock::now()},
238239
opentelemetry::common::SystemTimestamp{std::chrono::system_clock::now()},
239240
std::vector<opentelemetry::sdk::metrics::PointDataAttributes>{

0 commit comments

Comments
 (0)