metrics: Add knob to control emission of DDSketch buckets
This commit is contained in:
parent
dd0036f09c
commit
a05649c620
|
@ -259,16 +259,23 @@ void LatencySample::logSample() {
|
|||
std::string port_str = std::to_string(addr.port);
|
||||
switch (model) {
|
||||
case MetricsDataModel::OTLP: {
|
||||
if (metrics->histMap.find(IMetric::id) != metrics->histMap.end()) {
|
||||
metrics->histMap[IMetric::id].points.emplace_back(
|
||||
sketch.getErrorGuarantee(), sketch.getSamples(), sketch.min(), sketch.max(), sketch.getSum());
|
||||
} else {
|
||||
metrics->histMap[IMetric::id] = OTEL::OTELHistogram(
|
||||
name, sketch.getErrorGuarantee(), sketch.getSamples(), sketch.min(), sketch.max(), sketch.getSum());
|
||||
// We only want to emit the entire DDSketch if the knob is set
|
||||
if (FLOW_KNOBS->METRICS_EMIT_DDSKETCH) {
|
||||
if (metrics->histMap.find(IMetric::id) != metrics->histMap.end()) {
|
||||
metrics->histMap[IMetric::id].points.emplace_back(
|
||||
sketch.getErrorGuarantee(), sketch.getSamples(), sketch.min(), sketch.max(), sketch.getSum());
|
||||
} else {
|
||||
metrics->histMap[IMetric::id] = OTEL::OTELHistogram(name,
|
||||
sketch.getErrorGuarantee(),
|
||||
sketch.getSamples(),
|
||||
sketch.min(),
|
||||
sketch.max(),
|
||||
sketch.getSum());
|
||||
}
|
||||
metrics->histMap[IMetric::id].points.back().addAttribute("ip", ip_str);
|
||||
metrics->histMap[IMetric::id].points.back().addAttribute("port", port_str);
|
||||
metrics->histMap[IMetric::id].points.back().startTime = sampleEmit;
|
||||
}
|
||||
metrics->histMap[IMetric::id].points.back().addAttribute("ip", ip_str);
|
||||
metrics->histMap[IMetric::id].points.back().addAttribute("port", port_str);
|
||||
metrics->histMap[IMetric::id].points.back().startTime = sampleEmit;
|
||||
createOtelGauge(p50id, name + "p50", p50);
|
||||
createOtelGauge(p90id, name + "p90", p90);
|
||||
createOtelGauge(p95id, name + "p95", p95);
|
||||
|
|
|
@ -95,6 +95,7 @@ void FlowKnobs::initialize(Randomize randomize, IsSimulated isSimulated) {
|
|||
init( STATSD_UDP_EMISSION_PORT, 8125 );
|
||||
init( OTEL_UDP_EMISSION_ADDR, "127.0.0.1");
|
||||
init( OTEL_UDP_EMISSION_PORT, 8903 );
|
||||
init( METRICS_EMIT_DDSKETCH, false ); // Determines if DDSketch buckets will get emitted
|
||||
|
||||
//connectionMonitor
|
||||
init( CONNECTION_MONITOR_LOOP_TIME, isSimulated ? 0.75 : 1.0 ); if( randomize && BUGGIFY ) CONNECTION_MONITOR_LOOP_TIME = 6.0;
|
||||
|
|
|
@ -152,6 +152,7 @@ public:
|
|||
std::string OTEL_UDP_EMISSION_ADDR;
|
||||
int STATSD_UDP_EMISSION_PORT;
|
||||
int OTEL_UDP_EMISSION_PORT;
|
||||
bool METRICS_EMIT_DDSKETCH;
|
||||
|
||||
// run loop profiling
|
||||
double RUN_LOOP_PROFILING_INTERVAL;
|
||||
|
|
Loading…
Reference in New Issue