-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
UI should support generic and site-specific tags #2236
Comments
I think the first step is creating a new API for fetching annotations like the following.
Of course, I think that it is good to fetch at the timing when the service name is changed, like span names. |
The second step is about UI, but I do not know the component library to do such functions well... 😢 |
The second step is about UI, but since I do not know the library to
express such functions well... 😢
you seem to express them in code well enough ;)
|
as annotations are rarely used (the term annotation in annotationQuery is historical) For the purpose of dropdown I would suggest /tags the response could indeed be broken down by service, but in this case the value is more simpler as a map per service name ex
Note that breaking down by service has pros and cons. Pro is that a very chatty service who abuses service names can be disabled (though that could also be done on the back end). Con is that there will be a lot of repetition, also a con is that pre-defined tag name/values will be a little more work to break down by service. Ex some sites may choose to limit the predefined key/value obviating a special api for it. You'll notice haystack doesn't currently break down field query by service. They have an api to get the tag keys, and another to get values available for that key. It is a bit simpler, but yeah less insight into whether an auto-complete would succeed or not. https://github.com/ExpediaDotCom/haystack-idl/blob/419450f736634a5f4104998f471d478b632c8bfb/proto/api/traceReader.proto#L84 So, another option is just to return the same as they do or everything in one map. One problem with a big map is when people goof cardinality, the performance will suffer greatly I suspect. This is similar to why we have a separate api for service names and span names by service. This leads to an api similar to our service name and span name, also similar to haystack, where you can do a query for tag keys, and another for values by key. Though since these are site defined, I would suggest the api return a friendly label for the key possibly (that or out-of-band config I guess..) ex
In general, data dynamics will be similar in nature to span names api. If we stick to that, we can take advantage of existing code and timeouts around "name queries" as querying for tags can be expensive in the same ways span names query are expensive. Not all storage currently support a tags query not scoped by serviceName. In this case, maybe if we do make a special "all" reserved word, possibly it should not be returned in the case that the backend doesn't support it. I would vote for not differentiating by service thinking it through so far. Interested in other thoughts. @openzipkin/core any thoughts? cc also @narayuna @drolando @cwensel from SF meetup |
I also read the haystack-ui code and I knew they had taken such an approach. I have read your thoughts and my opinion has changed. |
PS I reconsidered having the storage api return the human description for reasons including i18n. Following is better. We can leave english (or japanese) description to UI assets and/or config.json
|
https://cwiki.apache.org/confluence/display/ZIPKIN/Sites @drolando @kristofa @narayaruna @anuraaga @jcarres-mdsol @zeagord @huydx @jonathan-lo @jcchavezs Can you all add a section to your site doc like below: ** Service Name ** Site-specific tags | Tag | Description | Usage | |
updated site-specific tag request to also explain how you use service name. cc also @narayaruna as originally I spelled your github user wrong :( |
update: I think we know a few things cc @openzipkin/core @openzipkin/ui Here are some insights from looking at @anuraaga's site https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95655004 Site specific tags include both fixed and high cardinality tags
|
closed moving high-cardinality support to #2506 |
Feature:
Right now, the "annotation query" section is flexible by allowing people to enter free-form text. However, this is not ideal for some sites. It would be good to allow some tag names to be pre-populated with value auto-completion. Notably, things with low cardinality like the standard "http.route" or a site-specific "phase".
Rational
Sometimes people make mistakes in the UI search by using incorrect key/value encoding. Also, folks like LINE and also Expedia already know there is a need for pre-defined site specific tags. This was discussed at length at the LINE workshop, who made a new UI that supports this.
https://cwiki.apache.org/confluence/display/ZIPKIN/2018-10-29+Zipkin+UI+at+LINE+Tokyo
This was also previously discussed at Netflix who have some site-specific tags that help correlate with Spinnaker deployments: https://cwiki.apache.org/confluence/display/ZIPKIN/2018-07-18+Aggregation+and+Analysis+at+Netflix
Example Scenario
For example, LINE has a phase tag, which is similar to an environment. This allows the user to easily reduce results without thinking about search syntax or making mistakes.
Prior Art
The text was updated successfully, but these errors were encountered: