Conversation
Signed-off-by: v.sidorin <v.sidorin@rabota.ru>
Signed-off-by: v.sidorin <v.sidorin@rabota.ru>
|
Hey @satmaelstorm, thank you for your MR. Could you please add tests to check the code? |
|
@LKaemmerling I'm unsure if this is the best place to open a conversation around this, but I'll start here and we can move it if needed. I agree that putting colons in some names can break things in the APC-based engines. I modified the blackbox tests (a quick hack/proof - the code is ugly) and was able to trigger runtime I'm personally of the opinion that the storage layer should prevent users from corrupting the keyspace; either by rejecting invalid names, or by encoding them to a valid string before storing, and decoding on retrieval. Either approach would work, although the latter would result in a change to the storage format (possibly -- there might be a way to implement it that's backwards-compatible). It also feels weird to have the Collector (an Abstract class) referring to a specific implementation (e.g. Do you have a preference on whether regex filtering logic should live in the engine versus in the Collector? Secondly, do you consider it a problem (or not) to Finally, I'm guessing that a non-breaking change ("filter and reject bad names") is preferred over a solution which would be non-backwards-compatible, such as encoding strings before storing them. Correct? |
With APC adapter meta-information is broken, if use colons in names of metrics. It gives hard to debug error. I am add validation of names when use APC adapter