From 402792562fc2f3d2f95e5e54b62bd785cbb369cb Mon Sep 17 00:00:00 2001 From: Ihar Yakimush Date: Tue, 4 Feb 2025 15:02:54 +0300 Subject: [PATCH] update metrics --- src/Epam.Kafka/Metrics/ConsumerMetrics.cs | 17 ++++++----------- src/Epam.Kafka/Metrics/ProducerMetrics.cs | 4 ++-- tests/Directory.Build.props | 16 ++++++++-------- tests/Epam.Kafka.Tests/MetricsTests.cs | 6 +++--- tests/Epam.Kafka.Tests/StatisticsTests.cs | 6 +++--- 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/Epam.Kafka/Metrics/ConsumerMetrics.cs b/src/Epam.Kafka/Metrics/ConsumerMetrics.cs index 0e55e50..9996336 100644 --- a/src/Epam.Kafka/Metrics/ConsumerMetrics.cs +++ b/src/Epam.Kafka/Metrics/ConsumerMetrics.cs @@ -10,9 +10,8 @@ namespace Epam.Kafka.Metrics; internal sealed class ConsumerMetrics : CommonMetrics { - private const string CgStateTagName = "CgState"; - private const string CgJoinStateTagName = "CgJoinState"; - private const string ReasonTagName = "Reason"; + private const string GroupStateTagName = "GroupState"; + private const string GroupJoinStateTagName = "GroupJoinState"; private const string TopicTagName = "Topic"; private const string PartitionTagName = "Partition"; private const string ConsumerGroupTagName = "Group"; @@ -53,8 +52,8 @@ private void ConfigureCgMeter(Meter cgMeter) return Enumerable.Repeat(new Measurement(v.ConsumerGroup.StateAgeMilliseconds / 1000, new[] { - new KeyValuePair(CgStateTagName, v.ConsumerGroup.State), - new KeyValuePair(CgJoinStateTagName, v.ConsumerGroup.JoinState) + new KeyValuePair(GroupStateTagName, v.ConsumerGroup.State), + new KeyValuePair(GroupJoinStateTagName, v.ConsumerGroup.JoinState) }), 1); } @@ -65,13 +64,9 @@ private void ConfigureCgMeter(Meter cgMeter) { Statistics? v = this.Value; - if (v != null) + if (v is { ConsumerGroup.RebalanceAgeMilliseconds: > 0 }) { - return Enumerable.Repeat(new Measurement(v.ConsumerGroup.RebalanceAgeMilliseconds / 1000, - new[] - { - new KeyValuePair(ReasonTagName, v.ConsumerGroup.RebalanceReason) - }), 1); + return Enumerable.Repeat(new Measurement(v.ConsumerGroup.RebalanceAgeMilliseconds / 1000), 1); } return Empty; diff --git a/src/Epam.Kafka/Metrics/ProducerMetrics.cs b/src/Epam.Kafka/Metrics/ProducerMetrics.cs index 1963bef..ece9bef 100644 --- a/src/Epam.Kafka/Metrics/ProducerMetrics.cs +++ b/src/Epam.Kafka/Metrics/ProducerMetrics.cs @@ -9,7 +9,7 @@ namespace Epam.Kafka.Metrics; internal sealed class ProducerMetrics : CommonMetrics { private const string TransactionTagName = "Transaction"; - private const string TrStateTagName = "TrState"; + private const string TransactionStateTagName = "TransactionState"; private const string IdempStateTagName = "IdempState"; private readonly ProducerConfig _config; @@ -37,7 +37,7 @@ protected override void Initialize(Func(v.ProducerTransaction.TransactionAgeMilliseconds / 1000, new[] { - new KeyValuePair(TrStateTagName, v.ProducerTransaction.TransactionState), + new KeyValuePair(TransactionStateTagName, v.ProducerTransaction.TransactionState), new KeyValuePair(TransactionTagName, this._config.TransactionalId) }), 1); } diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index f1cc12e..8e09592 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -13,14 +13,14 @@ - - - - - - - - + + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/Epam.Kafka.Tests/MetricsTests.cs b/tests/Epam.Kafka.Tests/MetricsTests.cs index 3497981..1cc69b0 100644 --- a/tests/Epam.Kafka.Tests/MetricsTests.cs +++ b/tests/Epam.Kafka.Tests/MetricsTests.cs @@ -111,7 +111,7 @@ public async Task ProducerTransaction() await Task.Delay(200); ml.RecordObservableInstruments(this.Output); ml.Results.Count.ShouldBe(2); - ml.Results.Keys.First().ShouldContain("Type:producer-TrState:Init-Transaction:qwe"); + ml.Results.Keys.First().ShouldContain("Type:producer-TransactionState:Init-Transaction:qwe"); ml.Results.Keys.Last().ShouldContain("Type:producer-IdempState:Init"); // One 1 of 4 assigned @@ -120,7 +120,7 @@ public async Task ProducerTransaction() await Task.Delay(200); ml.RecordObservableInstruments(this.Output); ml.Results.Count.ShouldBe(2); - ml.Results.Keys.First().ShouldContain("Type:producer-TrState:Ready-Transaction:qwe"); + ml.Results.Keys.First().ShouldContain("Type:producer-TransactionState:Ready-Transaction:qwe"); ml.Results.Keys.Last().ShouldContain("Type:producer-IdempState:Assigned"); producer.BeginTransaction(); @@ -128,7 +128,7 @@ public async Task ProducerTransaction() await Task.Delay(200); ml.RecordObservableInstruments(this.Output); ml.Results.Count.ShouldBe(2); - ml.Results.Keys.First().ShouldContain("Type:producer-TrState:InTransaction-Transaction:qwe"); + ml.Results.Keys.First().ShouldContain("Type:producer-TransactionState:InTransaction-Transaction:qwe"); ml.Results.Keys.Last().ShouldContain("Type:producer-IdempState:Assigned"); await producer.ProduceAsync("test", new Message { Key = 1, Value = 2 }); diff --git a/tests/Epam.Kafka.Tests/StatisticsTests.cs b/tests/Epam.Kafka.Tests/StatisticsTests.cs index 5c5d8a8..f1dae61 100644 --- a/tests/Epam.Kafka.Tests/StatisticsTests.cs +++ b/tests/Epam.Kafka.Tests/StatisticsTests.cs @@ -182,7 +182,7 @@ public void TransactionMetricsTests() ml.RecordObservableInstruments(this.Output); ml.Results.Count.ShouldBe(2); - ml.Results["epam_kafka_stats_eos_txn_age_Handler:n1-Name:c1-Type:c-TrState:test-Transaction:qwe"].ShouldBe(120); + ml.Results["epam_kafka_stats_eos_txn_age_Handler:n1-Name:c1-Type:c-TransactionState:test-Transaction:qwe"].ShouldBe(120); ml.Results["epam_kafka_stats_eos_idemp_age_Handler:n1-Name:c1-Type:c-IdempState:ids"].ShouldBe(130); cm.OnCompleted(); @@ -209,8 +209,8 @@ public void ConsumerGroupMetricsTests() ml.RecordObservableInstruments(this.Output); ml.Results.Count.ShouldBe(4); - ml.Results["epam_kafka_stats_cg_state_age_Group:qwe-Handler:n1-Name:c1-Type:c-CgState:test1-CgJoinState:test2"].ShouldBe(120); - ml.Results["epam_kafka_stats_cg_rebalance_age_Group:qwe-Handler:n1-Name:c1-Type:c-Reason:test3"].ShouldBe(130); + ml.Results["epam_kafka_stats_cg_state_age_Group:qwe-Handler:n1-Name:c1-Type:c-GroupState:test1-GroupJoinState:test2"].ShouldBe(120); + ml.Results["epam_kafka_stats_cg_rebalance_age_Group:qwe-Handler:n1-Name:c1-Type:c"].ShouldBe(130); ml.Results["epam_kafka_stats_cg_rebalance_count_Group:qwe-Handler:n1-Name:c1-Type:c"].ShouldBe(22); ml.Results["epam_kafka_stats_cg_assignment_count_Group:qwe-Handler:n1-Name:c1-Type:c"].ShouldBe(4);