Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins - Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ - GrafanaCon
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ © 2019 eBay. All rights reserved.
Monitoring and Logging UIs were custom Logs Metrics Built Custom Log Viewer tools No different from logs Developers would build Users instrument code with internal custom interfaces using frameworks to ship metrics. HTML CSS and JS libraries. Custom UIs allowed users to view their Users instrument code with metrics and set up alerts. internal frameworks to ship logs. Quality of UIs were greatly dependent on the person building The Custom UIs allowed users to search and view behaviors of their applications.
I’m not a frontend guy … How my frustrations with building UIs led to a PoC on Grafana!
A First Attempt At Grafana! The Hack Modify the OpenTSDB data source on Grafana HEAD to understand our internal TSDB’s request/ response formats Dashboards Build out scripted dashboards for one of our internal monitoring components. Distribute the dashboards to folks who do on call to see if it really helps
What was missing? It wasn’t clean The PoC was used within the team and it was a dirty hack to modify source code directly. It wasn’t maintainable. Missing Features Basic features like drawing a graph and aliases were present. Still lacked support for features like templating, annotations.
The PoC was lost in the sands of time. Until…
Folks from DB Ops loved Grafana so much that they decided to help out! Thank you Steven West, Auston McReynolds!!!
How did they help? How I took it and ran with Clean things it! up Rebase often What was a dirty hack was No more dirty changes. now a proper Grafana data Rebase often and roll out source plugin. new containers with most recent version of Grafana. Plugin was still a modified grunt generated file J Also had Kubernetes specs Add Docker for folks to easily deploy. Support Build a community Created a Dockerfile Grafana was still a pet and build scripts to project at this point create a container with the data source loaded. Evangelize the product and gain more adoption.
The big break through… SRE decides to revamp all their monitoring dashboards with the help of Grafana! Thank you Satish Sambasivan!!!
SRE takes it to the next level Overlay data Contribute code Overlay application metrics SRE not only increased with change executions in adoption to the system but the system. also submitted PRs to enhance the plugin. Requests Monitoring (Still a grunt generated file) Provides hosted team to support dashboards Grafana! Hosted dashboards Life has now become with key indicators for so easy for SRE that site applications they want the provided as templated monitoring team to dashboards for product officially support developers by SRE. Grafana!
© 2019 eBay. All rights reserved.
We said YES!
A whole new make over Throw away that JS file! Provide a hosted solution Remove grunt generated Move away from a model code and do it right this where folks spin up their time. own in favor of a single hosted solution that is managed by the monitoring team. Add widgets for logs/ events Build out more features Provide a single Use Grafana’s custom interface for logs/ apps to build out events/metrics on alerting experiences Grafana with the help of based on internal internal widgets. alerting APIs. Log viewer plugin Implement annotations, provides a tail like eBay specific experience. authentication etc.
What happened in the backend Move away from custom APIs Same would apply for metrics Instead of building custom Instrument code with well APIs to push logs/metrics/ known libraries like events we decided to use Prometheus. cloud native mechanisms. The platform would scrape metrics and store them! Do all of this as a community A newbie can log to file player! Anyone should be able Contribute to various to write logs to either projects like Elastic stdout or to a log file. Beats, Flink etc. with Our platform would features and bug fixes. collect and ship the data. Keep custom code in plugins. This allows new hires to onboard faster.
Lessons learned… Be closer to community Cloud Native is everything Never resort to in house Moving away from code changes unless proprietary APIs and into a working with community cloud native model helped fails. onboard use-cases that weren’t conventionally possible. Give code back to the Creating dashboards is community when new features are built. We should’ve adopted Grafana easy sooner! The cost of building out This was almost 4 data source plugins is years in the making. far cheaper than building out entire UIs. This should’ve been a no brainer J Rome was not built in a day but our custom data source was!
Thank You © 2019 eBay. All rights reserved.
You can also read