Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins - Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ - GrafanaCon

Page created by Herman Cole
 
CONTINUE READING
Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins - Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ - GrafanaCon
Grafana @ eBay - Moving
Monitoring Visualizations
from custom UIs to
Grafana Plugins
Vijay Samuel

Github: @vjsamuel Twitter: @vjsamuel_

© 2019 eBay. All rights reserved.
Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins - Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ - GrafanaCon
Many moons ago…
Grafana @ eBay - Moving Monitoring Visualizations from custom UIs to Grafana Plugins - Vijay Samuel Github: @vjsamuel Twitter: @vjsamuel_ - GrafanaCon
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