Skip to content

Commit 5e9f62b

Browse files
committed
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 2d9502a commit 5e9f62b

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 MemoryStats Memory { get; internal set; }
583+
584+
[DataContract]
585+
public class MemoryStats
586+
{
587+
[DataMember(Name = "current")]
588+
public IndexingLoad Current { get; internal set; }
589+
590+
[DataMember(Name = "total")]
591+
public TotalIndexingLoad Total { get; internal set; }
592+
593+
[DataMember(Name = "limit_in_bytes")]
594+
public long LimitInBytes { get; internal set; }
595+
596+
[DataMember(Name = "limit")]
597+
public string Limit { get; internal set; }
598+
599+
[DataContract]
600+
public class TotalIndexingLoad : IndexingLoad
601+
{
602+
[DataMember(Name = "coordinating_rejections")]
603+
public int CoordinatingRejections { get; internal set; }
604+
605+
[DataMember(Name = "primary_rejections")]
606+
public int PrimaryRejections { get; internal set; }
607+
608+
[DataMember(Name = "replica_rejections")]
609+
public int ReplicaRejections { get; internal set; }
610+
}
611+
612+
[DataContract]
613+
public class IndexingLoad
614+
{
615+
[DataMember(Name = "combined_coordinating_and_primary_in_bytes")]
616+
public long CombinedCoordinatingAndPrimaryInBytes { get; internal set; }
617+
618+
[DataMember(Name = "combined_coordinating_and_primary")]
619+
public string CombinedCoordinatingAndPrimary { get; internal set; }
620+
621+
[DataMember(Name = "coordinating_in_bytes")]
622+
public long CoordinatingInBytes { get; internal set; }
623+
624+
[DataMember(Name = "coordinating")]
625+
public string Coordinating { get; internal set; }
626+
627+
[DataMember(Name = "primary_in_bytes")]
628+
public long PrimaryInBytes { get; internal set; }
629+
630+
[DataMember(Name = "primary")]
631+
public string Primary { get; internal set; }
632+
633+
[DataMember(Name = "replica_in_bytes")]
634+
public long ReplicaInBytes { get; internal set; }
635+
636+
[DataMember(Name = "replica")]
637+
public string Replica { get; internal set; }
638+
639+
[DataMember(Name = "all_in_bytes")]
640+
public long AllInBytes { get; internal set; }
641+
642+
[DataMember(Name = "all")]
643+
public string All { get; internal set; }
644+
}
645+
}
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)