hi, Vadim, Nice suggestion. So I guess that we can do it by making the internal metrics name as a structured object w/ tag + name, and allow actual implementation of metric reporters to format the serialized metrics name according to the different metrics DB.
Would you please open a JIRA for this feature? Thanks! -Yi On Tue, Mar 29, 2016 at 5:01 PM, Vadim Chekan <[email protected]> wrote: > Hi all, > > We are using Grafana/Influxdb for metrics and current Samza's model does > not fit it particularly well. > Influxdb recently introduced so called "tags" and Grafana UI offers gret > value when using them. The idea is to keep metric name very simple, for > example cpu.use, and supply the measure with tags, for example {datacenter: > vegas, environment: staging, machine: vm-003, application: myApp} > From what I can read, OpenTSDB use tags too. > > Having tags instead of long metric names is much more convenient and in > some cases the only way to perform some desired operations. For example, I > want to have an alert for throughput of samza job. With tags encoded in > metric name it is impossible because I would have to have a list of all > machine names and samza job names in influxdb select statement, and even > after that, there is no way to group them properly. With tags it is as > simple as SELECT ... GROUP BY [[tag_host]],[[tag_samza_job_name]]. You can > add new machines to the cluster and jobs to yarn, and they will appear with > zero configuration effort in your metrics. > > Currently, I partially mitigated the issue by ripping out 1st part of > metric name (dot-separated parts) and making it "samza-src" tag, with the > assumption that it is going to be container name. But in many metrics, > partition number is encoded as part of metric name too. Its location is not > consistent and not all metrics have it, I can not build alerting system on > top of samza metrics. > > Proposal: > Change samza internal metrics to use tags (string key-value pairs) and > leave the job of constructing metric name to the output metric plugin. > This would allow to preserve backward compatibility and JMX reporter would > construct metric name the same it is today, but Influxdb plugin would not > modify the name and add list of tags to the measure. > > If this approach seems reasonable to the core team, I could work on the > patch. > > Thanks, > Vadym. > > > -- > From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT is > explicitly specified >
