-
Notifications
You must be signed in to change notification settings - Fork 12
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
Support tags in line protocol #4
Comments
I am working on this. I was reading a bit of code of graphite-project/carbon and found that they handle the tag with the name In other words: How far should we do validation at this (nanotube's) stage of the pipeline? Another aspect of this question: I found ambiguous information about what characters are allowed as tag names and values. (I am slightly bothered that graphite calls key=value pairs tags and not labels like the rest of the world does, but whatever...) In some place they demand "ASCII" characters except special characters like Now, should we pass through everything? Or should we restrict to ASCII-only (that's what I've implementd now) or restrict to printables (ascii? UTF-8?)? |
I'd say there is no need to bother with anything like this now. Let's get a simple implementation first and then build on top of it.
If tags are enabled, I'd say we have to do the full record validation. I.e. we should check that the metric name is indeed composed of a valid path and a valid set of tags.
We should use the same set of allowed symbols for tags as we do for paths, otherwise, we will make it confusing. Our current implementation will only allow working with single-byte characters anyway. Reading Unicode strings into characters is computationally costly, and we don't do it. |
I am postponing this to the point when we see an actual need for it. |
Currently, we do not have a Graphite storage that would support tags on scale. Since this project aims to primarily serve high-load and high-scale setups, this issue is closed for now. |
Add support for the extended line protocol with tags (see https://graphite.readthedocs.io/en/latest/tags.html). Currently, we support only the record in the form
Adding tags support will include supporting records in the format
The tags will not influence routing in the first version. The record validation should be handled with care. If it will make sense for performance or other reasons, tag support may be made optional with a config flag.
The text was updated successfully, but these errors were encountered: