mirror of
https://github.com/hyperdxio/hyperdx
synced 2026-04-21 13:37:15 +00:00
parent
00703bc121
commit
b6c34b13d9
4 changed files with 31 additions and 7 deletions
6
.changeset/brown-gifts-worry.md
Normal file
6
.changeset/brown-gifts-worry.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
"@hyperdx/common-utils": patch
|
||||
"@hyperdx/app": patch
|
||||
---
|
||||
|
||||
fix: Handling non-monotonic sums
|
||||
|
|
@ -280,7 +280,9 @@ function ExpandableLegendItem({
|
|||
/>
|
||||
</svg>
|
||||
</div>
|
||||
{isExpanded ? entry.value : truncateMiddle(`${entry.value}`, 35)}
|
||||
{isExpanded || isSelected
|
||||
? entry.value
|
||||
: truncateMiddle(`${entry.value}`, 35)}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -552,7 +552,10 @@ exports[`renderChartConfig k8s semantic convention migrations should generate SQ
|
|||
cityHash64(mapConcat(ScopeAttributes, ResourceAttributes, Attributes)) AS AttributesHash,
|
||||
IF(AggregationTemporality = 1,
|
||||
SUM(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
IF(IsMonotonic = 0,
|
||||
Value,
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
)
|
||||
) AS Rate,
|
||||
IF(AggregationTemporality = 1, Rate, Value) AS Sum
|
||||
FROM default.otel_metrics_sum
|
||||
|
|
@ -562,7 +565,7 @@ exports[`renderChartConfig k8s semantic convention migrations should generate SQ
|
|||
AttributesHash,
|
||||
last_value(Source.Rate) AS \`__hdx_value_high\`,
|
||||
any(\`__hdx_value_high\`) OVER(PARTITION BY AttributesHash ORDER BY \`__hdx_time_bucket2\` ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS \`__hdx_value_high_prev\`,
|
||||
\`__hdx_value_high\` - \`__hdx_value_high_prev\` AS Rate,
|
||||
IF(IsMonotonic = 1, \`__hdx_value_high\` - \`__hdx_value_high_prev\`, \`__hdx_value_high\`) AS Rate,
|
||||
last_value(Source.Sum) AS Sum,
|
||||
any(ResourceAttributes) AS ResourceAttributes,
|
||||
any(ResourceSchemaUrl) AS ResourceSchemaUrl,
|
||||
|
|
@ -725,7 +728,10 @@ exports[`renderChartConfig should generate sql for a single sum metric 1`] = `
|
|||
cityHash64(mapConcat(ScopeAttributes, ResourceAttributes, Attributes)) AS AttributesHash,
|
||||
IF(AggregationTemporality = 1,
|
||||
SUM(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
IF(IsMonotonic = 0,
|
||||
Value,
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
)
|
||||
) AS Rate,
|
||||
IF(AggregationTemporality = 1, Rate, Value) AS Sum
|
||||
FROM default.otel_metrics_sum
|
||||
|
|
@ -735,7 +741,7 @@ exports[`renderChartConfig should generate sql for a single sum metric 1`] = `
|
|||
AttributesHash,
|
||||
last_value(Source.Rate) AS \`__hdx_value_high\`,
|
||||
any(\`__hdx_value_high\`) OVER(PARTITION BY AttributesHash ORDER BY \`__hdx_time_bucket2\` ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS \`__hdx_value_high_prev\`,
|
||||
\`__hdx_value_high\` - \`__hdx_value_high_prev\` AS Rate,
|
||||
IF(IsMonotonic = 1, \`__hdx_value_high\` - \`__hdx_value_high_prev\`, \`__hdx_value_high\`) AS Rate,
|
||||
last_value(Source.Sum) AS Sum,
|
||||
any(ResourceAttributes) AS ResourceAttributes,
|
||||
any(ResourceSchemaUrl) AS ResourceSchemaUrl,
|
||||
|
|
|
|||
|
|
@ -1207,6 +1207,13 @@ async function translateMetricChartConfig(
|
|||
metadata,
|
||||
);
|
||||
|
||||
/**
|
||||
* See: https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/metrics/v1/metrics.proto
|
||||
* AGGREGATION_TEMPORALITY_DELTA = 1;
|
||||
* AGGREGATION_TEMPORALITY_CUMULATIVE = 2;
|
||||
*
|
||||
* Note, IsMonotonic = 0, has Cumulative agg temporality
|
||||
*/
|
||||
return {
|
||||
...restChartConfig,
|
||||
with: [
|
||||
|
|
@ -1218,7 +1225,10 @@ async function translateMetricChartConfig(
|
|||
cityHash64(mapConcat(ScopeAttributes, ResourceAttributes, Attributes)) AS AttributesHash,
|
||||
IF(AggregationTemporality = 1,
|
||||
SUM(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
IF(IsMonotonic = 0,
|
||||
Value,
|
||||
deltaSum(Value) OVER (PARTITION BY AttributesHash ORDER BY AttributesHash, TimeUnix ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
)
|
||||
) AS Rate,
|
||||
IF(AggregationTemporality = 1, Rate, Value) AS Sum
|
||||
FROM ${renderFrom({ from: { ...from, tableName: metricTables[MetricsDataType.Sum] } })}
|
||||
|
|
@ -1232,7 +1242,7 @@ async function translateMetricChartConfig(
|
|||
AttributesHash,
|
||||
last_value(Source.Rate) AS ${valueHighCol},
|
||||
any(${valueHighCol}) OVER(PARTITION BY AttributesHash ORDER BY \`${timeBucketCol}\` ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS ${valueHighPrevCol},
|
||||
${valueHighCol} - ${valueHighPrevCol} AS Rate,
|
||||
IF(IsMonotonic = 1, ${valueHighCol} - ${valueHighPrevCol}, ${valueHighCol}) AS Rate,
|
||||
last_value(Source.Sum) AS Sum,
|
||||
any(ResourceAttributes) AS ResourceAttributes,
|
||||
any(ResourceSchemaUrl) AS ResourceSchemaUrl,
|
||||
|
|
|
|||
Loading…
Reference in a new issue