1

我正在尝试查询 elasticsearch 中保存的 metricbeat 数据,并且正在寻找两个字段:hostsystem.cpu.total.pct. 两者都包含在我的班级中:

public string Host { get; set; }
[Number(NumberType.ScaledFloat, Name = "system.cpu.total.pct")]
public float Cpu_pct { get; set; }

这是我的查询:

var searchResponse = client.Search<System>(s => s
            .Query(q => q
                .Bool(b => b
                    .Filter(bf => bf
                        .Range(r => r
                            .Field(f => f.Cpu_pct)
                            .GreaterThan(0)
                        )
                    )
                )
            )
        );

索引中有带有文档的数据,具有system.cpu.total.pct上述内容0,但是当我打印出响应文档时Cpu_pct仅输出0,但host给出了正确的主机名。

为什么我不能返回值system.cpu.total.pct

4

1 回答 1

0

更新System类型以匹配 JSON 源中内部对象的层次结构

public class System
{
    public Cpu Cpu { get; set; }
}

public class Cpu
{
    public Total Total { get; set; }
}

public class Total
{
    public float Pct { get; set; }
}

现在在反序列化时,将为 Source.Cpu.Total.Pct属性设置值。

于 2018-03-22T12:34:12.890 回答