|
|
|
@ -637,12 +637,18 @@ void OpenTelemetryPluginImpl::AddCounter( |
|
|
|
|
grpc_core::GlobalInstrumentsRegistry::GetInstrumentDescriptor(handle); |
|
|
|
|
CHECK(descriptor.label_keys.size() == label_values.size()); |
|
|
|
|
CHECK(descriptor.optional_label_keys.size() == optional_values.size()); |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value, NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
if (label_values.empty() && optional_values.empty()) { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value); |
|
|
|
|
} else { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value, NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OpenTelemetryPluginImpl::AddCounter( |
|
|
|
@ -661,12 +667,18 @@ void OpenTelemetryPluginImpl::AddCounter( |
|
|
|
|
grpc_core::GlobalInstrumentsRegistry::GetInstrumentDescriptor(handle); |
|
|
|
|
CHECK(descriptor.label_keys.size() == label_values.size()); |
|
|
|
|
CHECK(descriptor.optional_label_keys.size() == optional_values.size()); |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value, NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
if (label_values.empty() && optional_values.empty()) { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value); |
|
|
|
|
} else { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Counter<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Add(value, NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OpenTelemetryPluginImpl::RecordHistogram( |
|
|
|
@ -685,14 +697,20 @@ void OpenTelemetryPluginImpl::RecordHistogram( |
|
|
|
|
grpc_core::GlobalInstrumentsRegistry::GetInstrumentDescriptor(handle); |
|
|
|
|
CHECK(descriptor.label_keys.size() == label_values.size()); |
|
|
|
|
CHECK(descriptor.optional_label_keys.size() == optional_values.size()); |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, |
|
|
|
|
NPCMetricsKeyValueIterable(descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, |
|
|
|
|
optional_values, |
|
|
|
|
instrument_data.optional_labels_bits), |
|
|
|
|
opentelemetry::context::Context{}); |
|
|
|
|
if (label_values.empty() && optional_values.empty()) { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, opentelemetry::context::Context{}); |
|
|
|
|
} else { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<uint64_t>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, |
|
|
|
|
NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits), |
|
|
|
|
opentelemetry::context::Context{}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OpenTelemetryPluginImpl::RecordHistogram( |
|
|
|
@ -711,14 +729,20 @@ void OpenTelemetryPluginImpl::RecordHistogram( |
|
|
|
|
grpc_core::GlobalInstrumentsRegistry::GetInstrumentDescriptor(handle); |
|
|
|
|
CHECK(descriptor.label_keys.size() == label_values.size()); |
|
|
|
|
CHECK(descriptor.optional_label_keys.size() == optional_values.size()); |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, |
|
|
|
|
NPCMetricsKeyValueIterable(descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, |
|
|
|
|
optional_values, |
|
|
|
|
instrument_data.optional_labels_bits), |
|
|
|
|
opentelemetry::context::Context{}); |
|
|
|
|
if (label_values.empty() && optional_values.empty()) { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, opentelemetry::context::Context{}); |
|
|
|
|
} else { |
|
|
|
|
absl::get<std::unique_ptr<opentelemetry::metrics::Histogram<double>>>( |
|
|
|
|
instrument_data.instrument) |
|
|
|
|
->Record(value, |
|
|
|
|
NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, label_values, |
|
|
|
|
descriptor.optional_label_keys, optional_values, |
|
|
|
|
instrument_data.optional_labels_bits), |
|
|
|
|
opentelemetry::context::Context{}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OpenTelemetryPluginImpl::AddCallback( |
|
|
|
@ -881,20 +905,27 @@ void OpenTelemetryPluginImpl::CallbackGaugeState<ValueType>::Observe( |
|
|
|
|
for (const auto& pair : cache) { |
|
|
|
|
CHECK(pair.first.size() <= (descriptor.label_keys.size() + |
|
|
|
|
descriptor.optional_label_keys.size())); |
|
|
|
|
auto& instrument_data = ot_plugin->instruments_data_.at(id); |
|
|
|
|
opentelemetry::nostd::get<opentelemetry::nostd::shared_ptr< |
|
|
|
|
opentelemetry::metrics::ObserverResultT<ValueType>>>(result) |
|
|
|
|
->Observe(pair.second, |
|
|
|
|
NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, |
|
|
|
|
absl::FixedArray<absl::string_view>( |
|
|
|
|
pair.first.begin(), |
|
|
|
|
pair.first.begin() + descriptor.label_keys.size()), |
|
|
|
|
descriptor.optional_label_keys, |
|
|
|
|
absl::FixedArray<absl::string_view>( |
|
|
|
|
pair.first.begin() + descriptor.label_keys.size(), |
|
|
|
|
pair.first.end()), |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
if (descriptor.label_keys.empty() && |
|
|
|
|
descriptor.optional_label_keys.empty()) { |
|
|
|
|
opentelemetry::nostd::get<opentelemetry::nostd::shared_ptr< |
|
|
|
|
opentelemetry::metrics::ObserverResultT<ValueType>>>(result) |
|
|
|
|
->Observe(pair.second); |
|
|
|
|
} else { |
|
|
|
|
auto& instrument_data = ot_plugin->instruments_data_.at(id); |
|
|
|
|
opentelemetry::nostd::get<opentelemetry::nostd::shared_ptr< |
|
|
|
|
opentelemetry::metrics::ObserverResultT<ValueType>>>(result) |
|
|
|
|
->Observe(pair.second, |
|
|
|
|
NPCMetricsKeyValueIterable( |
|
|
|
|
descriptor.label_keys, |
|
|
|
|
absl::FixedArray<absl::string_view>( |
|
|
|
|
pair.first.begin(), |
|
|
|
|
pair.first.begin() + descriptor.label_keys.size()), |
|
|
|
|
descriptor.optional_label_keys, |
|
|
|
|
absl::FixedArray<absl::string_view>( |
|
|
|
|
pair.first.begin() + descriptor.label_keys.size(), |
|
|
|
|
pair.first.end()), |
|
|
|
|
instrument_data.optional_labels_bits)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|