Skip to content

Support indexing pressure on NodeStats #5148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions src/Nest/Cluster/NodesStats/NodeStats.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ public class NodeStats

[DataMember(Name = "transport_address")]
public string TransportAddress { get; internal set; }

[DataMember(Name = "indexing_pressure")]
public IndexingPressureStats IndexingPressure { get; internal set; }
}

[DataContract]
Expand Down Expand Up @@ -571,4 +574,74 @@ public class HttpStats
[DataMember(Name = "total_opened")]
public long TotalOpened { get; internal set; }
}

[DataContract]
public class IndexingPressureStats
{
[DataMember(Name = "memory")]
public IndexingPressureMemoryStats Memory { get; internal set; }
}

[DataContract]
public class IndexingPressureMemoryStats
{
[DataMember(Name = "current")]
public IndexingLoad Current { get; internal set; }

[DataMember(Name = "total")]
public TotalIndexingLoad Total { get; internal set; }

[DataMember(Name = "limit_in_bytes")]
public long LimitInBytes { get; internal set; }

[DataMember(Name = "limit")]
public string Limit { get; internal set; }
}

[DataContract]
public class IndexingLoad
{
[DataMember(Name = "combined_coordinating_and_primary_in_bytes")]
public long CombinedCoordinatingAndPrimaryInBytes { get; internal set; }

[DataMember(Name = "combined_coordinating_and_primary")]
public string CombinedCoordinatingAndPrimary { get; internal set; }

[DataMember(Name = "coordinating_in_bytes")]
public long CoordinatingInBytes { get; internal set; }

[DataMember(Name = "coordinating")]
public string Coordinating { get; internal set; }

[DataMember(Name = "primary_in_bytes")]
public long PrimaryInBytes { get; internal set; }

[DataMember(Name = "primary")]
public string Primary { get; internal set; }

[DataMember(Name = "replica_in_bytes")]
public long ReplicaInBytes { get; internal set; }

[DataMember(Name = "replica")]
public string Replica { get; internal set; }

[DataMember(Name = "all_in_bytes")]
public long AllInBytes { get; internal set; }

[DataMember(Name = "all")]
public string All { get; internal set; }
}

[DataContract]
public class TotalIndexingLoad : IndexingLoad
{
[DataMember(Name = "coordinating_rejections")]
public int CoordinatingRejections { get; internal set; }

[DataMember(Name = "primary_rejections")]
public int PrimaryRejections { get; internal set; }

[DataMember(Name = "replica_rejections")]
public int ReplicaRejections { get; internal set; }
}
}
39 changes: 39 additions & 0 deletions tests/Tests/Cluster/NodesStats/NodesStatsApiTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ protected override void ExpectResponse(NodesStatsResponse response)
{
Assert(node.ScriptCache);
}

if (TestClient.Configuration.InRange(">=7.9.0"))
{
Assert(node.IndexingPressure);
}
}

protected void Assert(NodeIngestStats nodeIngestStats)
Expand Down Expand Up @@ -278,5 +283,39 @@ protected void Assert(NodeJvmStats jvm)
//jvm.Threads.Count.Should().BeGreaterThan(0);
//jvm.Threads.PeakCount.Should().BeGreaterThan(0);
}

protected void Assert(IndexingPressureStats indexingPressureStats)
{
if (TestClient.Configuration.InRange(">=7.10.0"))
{
indexingPressureStats.Memory.LimitInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Limit.Should().NotBeNull();
}

indexingPressureStats.Memory.Current.CombinedCoordinatingAndPrimaryInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Current.CombinedCoordinatingAndPrimary.Should().NotBeNull();
indexingPressureStats.Memory.Current.CoordinatingInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Current.Coordinating.Should().NotBeNull();
indexingPressureStats.Memory.Current.PrimaryInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Current.Primary.Should().NotBeNull();
indexingPressureStats.Memory.Current.ReplicaInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Current.Replica.Should().NotBeNull();
indexingPressureStats.Memory.Current.AllInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Current.All.Should().NotBeNull();

indexingPressureStats.Memory.Total.CombinedCoordinatingAndPrimaryInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Total.CombinedCoordinatingAndPrimary.Should().NotBeNull();
indexingPressureStats.Memory.Total.CoordinatingInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Total.Coordinating.Should().NotBeNull();
indexingPressureStats.Memory.Total.PrimaryInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Total.Primary.Should().NotBeNull();
indexingPressureStats.Memory.Total.ReplicaInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Total.Replica.Should().NotBeNull();
indexingPressureStats.Memory.Total.AllInBytes.Should().BeGreaterOrEqualTo(0);
//indexingPressureStats.Memory.Total.All.Should().NotBeNull();
indexingPressureStats.Memory.Total.CoordinatingRejections.Should().BeGreaterOrEqualTo(0);
indexingPressureStats.Memory.Total.PrimaryRejections.Should().BeGreaterOrEqualTo(0);
indexingPressureStats.Memory.Total.ReplicaRejections.Should().BeGreaterOrEqualTo(0);
}
}
}