Tidy date processor

This commit is contained in:
Daniel Nelson 2019-06-14 12:26:47 -07:00
parent 3e5cfad2b0
commit a276ddfe97
No known key found for this signature in database
GPG Key ID: CAAD59C9444F6155
2 changed files with 23 additions and 52 deletions

View File

@ -1,31 +1,29 @@
# Date Processor Plugin # Date Processor Plugin
The `date` processor adds the months and years as tags to your data. Use the `date` processor to add the metric timestamp as a human readable tag.
Provides the ability to group by months or years. A common use is to add a tag that can be used to group by month or year.
A few example usecases include: A few example usecases include:
1) consumption data for utilities on per month basis 1) consumption data for utilities on per month basis
2) bandwith capacity per month 2) bandwith capacity per month
3) compare energy production or sales on a yearly or monthly basis 3) compare energy production or sales on a yearly or monthly basis
### Configuration
### Configuration:
```toml ```toml
[[processors.date]] [[processors.date]]
##Specify the date tags to add rename operation. ## New tag to create
tagKey = "month" tag_key = "month"
dateFormat = "Jan"
## Date format string, must be a representation of the Go "reference time"
## which is "Mon Jan 2 15:04:05 -0700 MST 2006".
date_format = "Jan"
``` ```
### Tags: ### Example
Tags are applied by this processor.
### Example processing:
``` ```diff
- throughput, hostname=example.com lower=10i,upper=1000i,mean=500i 1502489900000000000 - throughput lower=10i,upper=1000i,mean=500i 1560540094000000000
+ throughput,host=backend.example.com,month=Mar min=10i,max=1000i,mean=500i 1502489900000000000 + throughput,month=Jun lower=10i,upper=1000i,mean=500i 1560540094000000000
``` ```

View File

@ -6,15 +6,17 @@ import (
) )
const sampleConfig = ` const sampleConfig = `
##Specify the date tags to add ## New tag to create
tagKey = "month" tag_key = "month"
dateFormat = "%m"
## Date format string, must be a representation of the Go "reference time"
## which is "Mon Jan 2 15:04:05 -0700 MST 2006".
date_format = "Jan"
` `
type Date struct { type Date struct {
TagKey string `toml:"tagKey"` TagKey string `toml:"tag_key"`
DateFormat string `toml:"dateFormat"` DateFormat string `toml:"date_format"`
} }
func (d *Date) SampleConfig() string { func (d *Date) SampleConfig() string {
@ -28,11 +30,9 @@ func (d *Date) Description() string {
func (d *Date) Apply(in ...telegraf.Metric) []telegraf.Metric { func (d *Date) Apply(in ...telegraf.Metric) []telegraf.Metric {
for _, point := range in { for _, point := range in {
point.AddTag(d.TagKey, point.Time().Format(d.DateFormat)) point.AddTag(d.TagKey, point.Time().Format(d.DateFormat))
} }
return in return in
} }
func init() { func init() {
@ -40,30 +40,3 @@ func init() {
return &Date{} return &Date{}
}) })
} }
/**
*
[processors.date]
jdfj
##Set Months to True or False
tagKey = "month"
dateFormat = "%m" // January
[processors.date]
jdfj
##Set Months to True or False
tagKey = "day_of_week"
dateFormat = "%d" // Wednesday
# [[processors.regex.fields]]
# key = "request"
# pattern = ".*category=(\\w+).*"
# replacement = "${1}"
# result_key = "search_category"
*/