-
Notifications
You must be signed in to change notification settings - Fork 9
Scatter-gather support for Query API #38
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
Conversation
@adriancole this might be a long one :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently working when testing one instance. Requires fixing tests and validate approach on scaling instances.
storage/src/main/java/zipkin2/storage/kafka/internal/Traces.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreServerSupplier.java
Outdated
Show resolved
Hide resolved
thanks @adriancole and @anuraaga for your feedback! Hope it looks much better now :) about reusing zipkin-server: is it something we would be able to do right now or requires changes on armeria first? |
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/internal/KafkaStoreListCall.java
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/internal/KafkaStoreListCall.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/internal/KafkaStoreScatterGatherListCall.java
Outdated
Show resolved
Hide resolved
I think until armeria supports |
storage/src/main/java/zipkin2/storage/kafka/KafkaSpanStore.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
storage/src/main/java/zipkin2/storage/kafka/KafkaStoreHttpService.java
Outdated
Show resolved
Hide resolved
@anuraaga I'd like to keep the current impl with port 9412, and fix integration and reuse zipkin server on a new PR. I've tried to use armeria-spring but haven't manage to mount the http service. |
@anuraaga <https://github.com/anuraaga> I'd like to keep the current impl
with port 9412, and fix integration and reuse zipkin server on a new PR.
I've tried to use armeria-spring but haven't manage to mount the http
service.
sgtm TODO and do later is good!
|
…2070) I think it's useful to be able to customize with spring without using custom types, for example to allow creating a plugin module that just configures a server without needing to worry about armeria-spring. It's sort of similar to how Spring supports both custom annotations and `javax.inject` annotaions. Idea came up in openzipkin-contrib/zipkin-storage-kafka#38
Sure no problem 👍 |
great! just created #40 to follow up the discussion. is there any other feedback before merging this? |
docker-compose.yml
Outdated
@@ -25,8 +25,10 @@ services: | |||
zipkin: | |||
image: jeqo/zipkin-kafka | |||
container_name: zipkin | |||
hostname: zipkin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
anywhere setting hostname explicitly, comment why important. If important we should probably consider changing upstream docker-compose also..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please do merge this. If you don't mind, I'd like to do a follow-up commit to use routine build infra.
…ine#2070) I think it's useful to be able to customize with spring without using custom types, for example to allow creating a plugin module that just configures a server without needing to worry about armeria-spring. It's sort of similar to how Spring supports both custom annotations and `javax.inject` annotaions. Idea came up in openzipkin-contrib/zipkin-storage-kafka#38
…ine#2070) I think it's useful to be able to customize with spring without using custom types, for example to allow creating a plugin module that just configures a server without needing to worry about armeria-spring. It's sort of similar to how Spring supports both custom annotations and `javax.inject` annotaions. Idea came up in openzipkin-contrib/zipkin-storage-kafka#38
Work to be done in order to support scaling storage.
Currently only one instance is supported to get complete response from data stored. If scaled, responses will get partitioned.
Using one instance is limiting storage usage, as when load is high, it starts falling back as one instance cannot keep pace with the ingestion load.
Initial design
In order to query all instances, we need to have a channel where stores can communicate:
Then:
We can expose store endpoint in another port (e.g. 9412), including metadata and metrics that allow better debugging.
Fix #36