-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Jaeger grafana mixin is broken #2956
Comments
@gouthamve, would you be interested in maintaining the mixin? Otherwise, it might be better to remove it, and point people to a blog post instead. |
I'd be happy with a blog post, as long as I can get monitoring with |
Have you seen this blog post? This was made at the time I added the mixin to this repository: |
@jpkrohling Yes, I saw that one, but that one fails at the |
Sorry about that, I knew that it was risky to use quite a bunch of tools in that blog post, even though those are an example of what people might use in production to provision their resources. In any case, you can get an initial setup working with simpler steps. I can help you with the Jeager parts of the equation, but can't really provide much help about Prometheus/Grafana other than what they have in the docs. I would recommend taking a look at kube-prometheus for those parts. The quick start from the readme should give you enough to have a Grafana dashboard with Prometheus as a data source pre-configured. Also make sure that you have a Jaeger instance running, probably provisioned by the jaeger-operator. Once you have that ready, you'll need to either create a PodMonitor, with a selection that returns all your Jaeger instances, or you create a Service (backed by the same pods) + ServiceMonitor. The service should then expose the Jaeger monitoring port, which is 14269 if you are using the collector as a separate component. Once you get the PodMonitor/ServiceMonitor in place, the prometheus-operator should update your Prometheus config to add the Jaeger instances to the target list, and it might take a few minutes. The jaeger-operator wouldn't be relevant here unless you want to monitor the operator itself. In which case, it works the same as the above, with your PodMonitor/Service being backed by the operator pods instead. Let me know if you have enough to get unblocked, or if you need more clarification on specific steps. |
Yeah, that was pretty much what I hoped the mixin would provide for me and how I understood the mixin would work. Having to craft the CRD's myself though would take much longer. Is there no one that can provide the CRD's output as an example to start from? I already have |
I'd need more time to give you a configuration that I know to work, but the getting started guide from the Prometheus operator has an example of both a service and a service monitor, which I copy here: kind: Service
apiVersion: v1
metadata:
name: example-app
labels:
app: example-app
spec:
selector:
app: example-app
ports:
- name: web
port: 8080
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: example-app
labels:
team: frontend
spec:
selector:
matchLabels:
app: example-app
endpoints:
- port: web The port in the service has to be 14269. The selector in the service should be the same as the service that backs the collector deployment. Using the selector:
app: jaeger
app.kubernetes.io/component: all-in-one
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: jaeger-operator
app.kubernetes.io/name: simplest
app.kubernetes.io/part-of: jaeger You can also leave some tags out, which would likely yield more pods, like the name and the instance ones. Make sure to not have query and collector pods as part of the same service, as they use different ports for the metrics. The service should have a set of labels like this, if you want them to be like the service that fronts the collector deployments: labels:
app: jaeger
app.kubernetes.io/component: service-collector
app.kubernetes.io/instance: simplest
app.kubernetes.io/managed-by: jaeger-operator
app.kubernetes.io/name: simplest-collector
app.kubernetes.io/part-of: jaeger Those labels would then be part of the selector for the service monitor. Again, you can remove a few of them, but make sure to keep at least the component. Hope this helps. |
Perfect, that should get me started. I'll keep you posted on the progress. Once I do have a working example, I'll make sure to document it for future reference and for validation, whether the approach is production-safe. |
@jpkrohling, following your instructions, I seem to have it working now. I added an extra service
Note that I deployed my Then I added a ServiceMonitor to
Again, change the namespace depending on where you deployed the jaeger instance. I then imported a Jaeger dashboard in grafana: https://grafana.com/grafana/dashboards/10001 Success!! In hindsight, that was all relatively trivial, but somehow this is missing from the documentation. The mixin part really threw me off, and since it's broken and unmaintained, I would suggest taking it out if no one is willing to pick it up. As the report is about the mixin being broken, I'll let you guys decide what to do with the status of this issue. |
Could you open a feature request in the jaeger-operator repository?
Would you be willing to send a PR removing it?
I think it would be a great material for this: https://www.jaegertracing.io/docs/1.22/monitoring/ . How do you feel about helping us here? This is the source of that page: https://github.com/jaegertracing/documentation/blob/master/content/docs/1.22/monitoring.md . Perhaps a sub page would make sense? Like, Monitoring with Prometheus on Kubernetes? |
does the operator not have a flag to expose metrics over admin ports at the service level??? |
Not via the regular service. I think we have a feature request to create a monitoring service, exposing only this port. |
I also tried to follow the mixin docs and failed. I can give you my detailed notes. I don't want to attempt a PR yet because I never did get it running. I did make progress.
I installed with go install github.com/google/go-jsonnet/cmd/jsonnet
go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest The I tried to follow the instructions to make the complete monitoring stack. At that point (At this point 13 pods are running successfully in the |
Hi Team, I am also trying to deploy monitoring on Jaeger, following the documentation, on the Linux platform. As pointed out by @esnible in the above comment, I am also facing the same issues while executing the jsonnet command. Below are the error logs:
Are you planning to update the monitoring documentation to resolve these issues? |
Yes, I have this on my queue. |
I submitted a PR to get this fixed. Would anyone be interested in trying it out and giving me feedback? |
@jpkrohling , Thank you for this PR. I followed the updated mixin documentation, and getting some issues while executing jsonnet command:
Can you please provide some pointers on the same? |
I'm on this, and I'm not sure yet what's wrong. For now, remove the
|
Looks like it was a temporary fluke somewhere. Could you please try removing your |
@jpkrohling, Thanks for the updates. All the commands are successfully running now and PodMonitor named “tracing” has been created successfully.
|
Describe the bug
I tried following the mixin documentation to generate the CRDs for the monitoring jaeger in grafana, but the mixin is broken due to git repo's being moved. No idea where to begin to fix this.
The generated version lacks documentation on how to use them, so I'm stuck.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A working config to apply to kubernetes to monitor Jaeger. No idea why this mixin stuff is being added as it's why too complicated to a simple dashboard in Grafana.
The text was updated successfully, but these errors were encountered: