Skip to content

Commit de02c9d

Browse files
authored
Support indexing pressure on NodeStats (#5148)
* Support indexing pressure on NodeStats Indexing pressure stats were added in 7.9.0 elastic/elasticsearch#59467 They were updated to include memory limit stats in 7.10.0 elastic/elasticsearch#60342
1 parent 75ba1f1 commit de02c9d

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

src/Nest/Cluster/NodesStats/NodeStats.cs

+73
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ public class NodeStats
8080

8181
[DataMember(Name = "transport_address")]
8282
public string TransportAddress { get; internal set; }
83+
84+
[DataMember(Name = "indexing_pressure")]
85+
public IndexingPressureStats IndexingPressure { get; internal set; }
8386
}
8487

8588
[DataContract]
@@ -571,4 +574,74 @@ public class HttpStats
571574
[DataMember(Name = "total_opened")]
572575
public long TotalOpened { get; internal set; }
573576
}
577+
578+
[DataContract]
579+
public class IndexingPressureStats
580+
{
581+
[DataMember(Name = "memory")]
582+
public IndexingPressureMemoryStats Memory { get; internal set; }
583+
}
584+
585+
[DataContract]
586+
public class IndexingPressureMemoryStats
587+
{
588+
[DataMember(Name = "current")]
589+
public IndexingLoad Current { get; internal set; }
590+
591+
[DataMember(Name = "total")]
592+
public TotalIndexingLoad Total { get; internal set; }
593+
594+
[DataMember(Name = "limit_in_bytes")]
595+
public long LimitInBytes { get; internal set; }
596+
597+
[DataMember(Name = "limit")]
598+
public string Limit { get; internal set; }
599+
}
600+
601+
[DataContract]
602+
public class IndexingLoad
603+
{
604+
[DataMember(Name = "combined_coordinating_and_primary_in_bytes")]
605+
public long CombinedCoordinatingAndPrimaryInBytes { get; internal set; }
606+
607+
[DataMember(Name = "combined_coordinating_and_primary")]
608+
public string CombinedCoordinatingAndPrimary { get; internal set; }
609+
610+
[DataMember(Name = "coordinating_in_bytes")]
611+
public long CoordinatingInBytes { get; internal set; }
612+
613+
[DataMember(Name = "coordinating")]
614+
public string Coordinating { get; internal set; }
615+
616+
[DataMember(Name = "primary_in_bytes")]
617+
public long PrimaryInBytes { get; internal set; }
618+
619+
[DataMember(Name = "primary")]
620+
public string Primary { get; internal set; }
621+
622+
[DataMember(Name = "replica_in_bytes")]
623+
public long ReplicaInBytes { get; internal set; }
624+
625+
[DataMember(Name = "replica")]
626+
public string Replica { get; internal set; }
627+
628+
[DataMember(Name = "all_in_bytes")]
629+
public long AllInBytes { get; internal set; }
630+
631+
[DataMember(Name = "all")]
632+
public string All { get; internal set; }
633+
}
634+
635+
[DataContract]
636+
public class TotalIndexingLoad : IndexingLoad
637+
{
638+
[DataMember(Name = "coordinating_rejections")]
639+
public int CoordinatingRejections { get; internal set; }
640+
641+
[DataMember(Name = "primary_rejections")]
642+
public int PrimaryRejections { get; internal set; }
643+
644+
[DataMember(Name = "replica_rejections")]
645+
public int ReplicaRejections { get; internal set; }
646+
}
574647
}

tests/Tests/Cluster/NodesStats/NodesStatsApiTests.cs

+39
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ protected override void ExpectResponse(NodesStatsResponse response)
7878
{
7979
Assert(node.ScriptCache);
8080
}
81+
82+
if (TestClient.Configuration.InRange(">=7.9.0"))
83+
{
84+
Assert(node.IndexingPressure);
85+
}
8186
}
8287

8388
protected void Assert(NodeIngestStats nodeIngestStats)
@@ -278,5 +283,39 @@ protected void Assert(NodeJvmStats jvm)
278283
//jvm.Threads.Count.Should().BeGreaterThan(0);
279284
//jvm.Threads.PeakCount.Should().BeGreaterThan(0);
280285
}
286+
287+
protected void Assert(IndexingPressureStats indexingPressureStats)
288+
{
289+
if (TestClient.Configuration.InRange(">=7.10.0"))
290+
{
291+
indexingPressureStats.Memory.LimitInBytes.Should().BeGreaterOrEqualTo(0);
292+
//indexingPressureStats.Memory.Limit.Should().NotBeNull();
293+
}
294+
295+
indexingPressureStats.Memory.Current.CombinedCoordinatingAndPrimaryInBytes.Should().BeGreaterOrEqualTo(0);
296+
//indexingPressureStats.Memory.Current.CombinedCoordinatingAndPrimary.Should().NotBeNull();
297+
indexingPressureStats.Memory.Current.CoordinatingInBytes.Should().BeGreaterOrEqualTo(0);
298+
//indexingPressureStats.Memory.Current.Coordinating.Should().NotBeNull();
299+
indexingPressureStats.Memory.Current.PrimaryInBytes.Should().BeGreaterOrEqualTo(0);
300+
//indexingPressureStats.Memory.Current.Primary.Should().NotBeNull();
301+
indexingPressureStats.Memory.Current.ReplicaInBytes.Should().BeGreaterOrEqualTo(0);
302+
//indexingPressureStats.Memory.Current.Replica.Should().NotBeNull();
303+
indexingPressureStats.Memory.Current.AllInBytes.Should().BeGreaterOrEqualTo(0);
304+
//indexingPressureStats.Memory.Current.All.Should().NotBeNull();
305+
306+
indexingPressureStats.Memory.Total.CombinedCoordinatingAndPrimaryInBytes.Should().BeGreaterOrEqualTo(0);
307+
//indexingPressureStats.Memory.Total.CombinedCoordinatingAndPrimary.Should().NotBeNull();
308+
indexingPressureStats.Memory.Total.CoordinatingInBytes.Should().BeGreaterOrEqualTo(0);
309+
//indexingPressureStats.Memory.Total.Coordinating.Should().NotBeNull();
310+
indexingPressureStats.Memory.Total.PrimaryInBytes.Should().BeGreaterOrEqualTo(0);
311+
//indexingPressureStats.Memory.Total.Primary.Should().NotBeNull();
312+
indexingPressureStats.Memory.Total.ReplicaInBytes.Should().BeGreaterOrEqualTo(0);
313+
//indexingPressureStats.Memory.Total.Replica.Should().NotBeNull();
314+
indexingPressureStats.Memory.Total.AllInBytes.Should().BeGreaterOrEqualTo(0);
315+
//indexingPressureStats.Memory.Total.All.Should().NotBeNull();
316+
indexingPressureStats.Memory.Total.CoordinatingRejections.Should().BeGreaterOrEqualTo(0);
317+
indexingPressureStats.Memory.Total.PrimaryRejections.Should().BeGreaterOrEqualTo(0);
318+
indexingPressureStats.Memory.Total.ReplicaRejections.Should().BeGreaterOrEqualTo(0);
319+
}
281320
}
282321
}

0 commit comments

Comments
 (0)