I’m having an issue aggregating multiple processes to 1 metric.
I’m using and expression to match the running process, its returning multiple instances.
I could pull the procstat by the pid, but I would rather not.
I want to get the sum of metrics grouped by ‘process_name’ tag. So it looks something like
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11567104i,cpu_time_user=0 1543284200000000000
Currently. its returning multiple values.
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11567104i,cpu_time_user=0 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.01,memory_rss=11804672i 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11812864i,cpu_time_user=0.02 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11812864i,cpu_time_user=0.02 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11767808i,cpu_time_user=0.01 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0,memory_rss=11575296i 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.02,memory_rss=11812864i 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11812864i,cpu_time_user=0.01 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.02,memory_rss=11816960i 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.01,memory_rss=11821056i 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11812864i,cpu_time_user=0.01 1543284200000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,memory_rss=11812864i,cpu_time_user=0.02 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.02,memory_rss=11816960i,cpu_usage=0 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0,cpu_usage=0,memory_rss=11575296i 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,memory_rss=11821056i,cpu_time_user=0.01 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0.01,memory_rss=11812864i,cpu_usage=0 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_time_user=0,cpu_usage=0,memory_rss=11567104i 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,memory_rss=11812864i,cpu_time_user=0.02 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,memory_rss=11804672i,cpu_time_user=0.01 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,cpu_time_user=0.01,memory_rss=11767808i 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av memory_rss=11812864i,cpu_time_user=0.01,cpu_usage=0 1543284210000000000
procstat,host=FatRabbit,process_name=dansguardian-av cpu_usage=0,cpu_time_user=0.02,memory_rss=11812864i 1543284210000000000
This is my telegraf configuration.
[[inputs.procstat]]
pattern = "."
tagexclude = ["pattern","user"]
pid_tag = false
fieldpass = [
"cpu_time_user",
"cpu_usage",
"memory_rss",
]
[[processors.converter]]
namepass = ["*procstat*"]
[processors.converter.fields]
# Convert memory_rss from unsigned float, to signed float.
float = [
"memory_rss",
]
[[processors.topk]]
namepass = ["*procstat*"]
k = 10
group_by = ['process_name']
fields = [
"cpu_time_user",
"cpu_usage",
"memory_rss",
]
aggregation = "sum"