-
Notifications
You must be signed in to change notification settings - Fork 89
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
feat(telemetry): instrument rafiki #2299
Conversation
✅ Deploy Preview for brilliant-pasca-3e80ec ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
packages/backend/src/payment-method/ilp/connector/core/middleware/telemetry.ts
Outdated
Show resolved
Hide resolved
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.
Looking solid, thank you for adding those docs!
packages/backend/src/open_payments/payment/outgoing/lifecycle.ts
Outdated
Show resolved
Hide resolved
new docs section added for integrating your own otel collector |
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.
Will get back to this!
How does one get access to the Grafana dashboard? I tried signing in with an account created using my Github account and I wasn't able to see it. |
Me | Sarah need to add your emails to the grafana cloud instance. Unfortunately since AMP wasn't a good fit for us, we can't use the already existing AWS accounts. Our subscription is limited to 3 users now. So I just added you for now, (nathan@interledger.org) If you want to see the grafana admin side, but it will be just you for now, since me and @JoblersTune are already the other 2 another way to just view what it looks like is through the public dashboard |
packages/documentation/src/content/docs/telemetry/integrating.md
Outdated
Show resolved
Hide resolved
packages/documentation/src/content/docs/telemetry/integrating.md
Outdated
Show resolved
Hide resolved
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.
I think anything after can be added to separate PR
Tested it and works smoothly. Final question: Should this work on localenv? |
@sabineschaller you mean enabled by default on localenv, correct? I think it'll be good to have it on at rafiki.money (of course) but I don't think that would be particularly useful on localenv |
@mkurapov that's what I thought, too. It should only be enabled in production. |
@sabineschaller @mkurapov |
packages/documentation/src/content/docs/telemetry/integrating.md
Outdated
Show resolved
Hide resolved
& docs changes
Changes proposed in this pull request
This PR introduces telemetry into Rafiki to observe and measure the growth and activities of the ILP Network. This will provide valuable insights for future improvements and developments. The implementation includes the following key features:
Infrastructure
The infrastructure for this feature is built on AWS. We are using AWS ECS Fargate, with a cluster of custom ADOT (AWS Distro for OpenTelemetry) collectors. There is also a Network Load Balancer (NLB) in AWS that sits in front of the cluster and load balances the multiple ECS otel collector tasks. All these tasks then send data further downstream to Prometheus. The infrastructure and deployed resource details are documented separately to keep this PR focused on the Rafiki changes.
Context
Full telemetry DOCS
The goal of this PR is to provide a foundation for observing the ILP Network at the money transfer level. By instrumenting Rafiki with Opentelemetry, we can collect data that will help us understand the network's growth and make informed decisions about future developments. The telemetry data is sent to a cluster of Opentelemetry collectors in AWS, but the system is designed to allow integrating ASEs to have their own collectors and build their own telemetry solutions.
Testing
To test out the telemetry feature you can use
pnpm localenv:compose up
command and everything will be set up for you. If you use the Rafiki peer to peer and cross currency examples in Postman you should see your metrics reflecting on the dashboard after a few minutes.You can also checkout our tests in
packages/backend/src/payment-method/ilp/connector/core/test/middleware/telemetry.test.ts
andpackages/backend/src/telemetry/meter.test.ts
closes #1913 #1923 #1921 #1956
Checklist
fixes #number