Skip to content
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

Spec using grafana for monitoring dashboards #171

Conversation

anivargi
Copy link
Contributor

No description provided.


==== Tendrl API impact:

Tendrl API will not provide any moniroting related API's.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/moniroting/monitoring

Also, this would mean API code for monitoring would be removed, please file issue for that on Tendrl/API


The changes introduces a new Grafana component which needs to be installed and
configured by Tendrl.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please provide details of the "install/configure"

  • Is the install done only once during installation of Tendrl server?
  • What are the steps to be taken when Tendrl "manages/unmanages" a Node or a Cluster
  • Any periodic flows to be run to keep Grafana updated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@r0h4n managing/unmanaging nodes will automatically update Graphite and hence affect the visual representation on Grafana for those nodes.
Regarding periodic flows, node-monitoring (collectd) will keep updating Graphite with the latest changes per node/cluster, which will reflect on the monitoring dashboards.

While these points are valid, I think we need a different spec for these, this spec just talks about how we replace the current monitoring dashboard with Grafana dashboard.

=== Developer impact:

The change potentially affects performance-monitoring, node-monitoring, API and
UI.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please provide responsibilities of the new components

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have defined under Impacted modules section the changes needed in these components.

predefined json's for dashboards, panels and alerts.

* Script to configure Grafana to directly use time series db i.e Graphite and
load the json configurations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When is this script executed and who does that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be handled by set of default configuration files provided by some tendrl rpm package?

== Implementation:

* Introduce a new component (possibly gluster-metrics-integration) to store
predefined json's for dashboards, panels and alerts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets call it "monitoring-integration" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we are calling it that.

@r0h4n
Copy link
Contributor

r0h4n commented Jul 21, 2017

@anivargi any updates?


End users are provided with more detailed graphs with possibility of querying
based on any time interval. Users can create their own graphs which suit their
use cases. The graphs also provides visual real time updates about an ongoing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at:

Users can create their own graphs ...

does it mean that the person looking at grafana dashboard linked from Tendrl UI will be able to define completely new chart or does it just mean that one can use grafana features to tweak predefined chart (eg. specifying data range). Sorry for a stupid question ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, people can create their own charts, but they will need to understand the structure of our time series db to actually make proper queries.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anivargi Where will the database schema of the Time Series Database (or data dictionary) be documented so that users can define their own charts? Is this repo as well as the docs (rghatvis@redhat.com)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@julienlim I have mentioned link to the data model in this spec. #206

=== Performance impact:

The proposed changes will improve the performance of the API, as most of the
real-time polling will be handled by Grafana.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

most of the real-time polling will be handled by Grafana

Do you have some exceptions already in mind?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mbukatov By this I mean, the nodes list and clusters list updates from the UI will still be via polling. Only the monitoring related queries are handled by Grafana hence forth.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anivargi Would be a good idea to update the document with this statement directly.

None

=== Data model impact:
None
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't the changes to collectd and graphite get mentioned here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@brainfunked the data model changes are in a different spec. #206, I have added the link in the spec.

=== Performance impact:

The proposed changes will improve the performance of the API, as most of the
real-time polling will be handled by Grafana.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anivargi Would be a good idea to update the document with this statement directly.


== Implementation:

* Introduce a new component called as monitoring-integration to store predefined
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please mention that this is being handled in a separate spec #179.

* Introduce a new component called as monitoring-integration to store predefined
json's for dashboards, panels and alerts.

* Script to configure Grafana to directly use time series db i.e Graphite and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this script later be subsumed into the monitoring-integration codebase directly?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The script is going to be part of the monitoring-integration code base.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So does it get to be part of https://github.com/Tendrl/specifications/milestone/2, given that monitoring-integration won't be?

monitoring-integration service is started. The script will run after first time
installation and subsequent updates to the monitoring-integration component.

* Enable single authentication across the UI and Grafana dashboards.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spec #191.

* Disable proxy API's from performance-monitoting to tendrl-api

* Disable previous UI for showing monitoring data

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

load the json configurations. The script is executed after the
monitoring-integration service is started. The script will run after first time
installation and subsequent updates to the monitoring-integration component.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the cluster import plays any role in constructing the dashboard? How and when dashboard is populated from the default json configurations?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nthomas-redhat The graphs start populating when it starts seeing data in Graphite.

monitoring-integration service is started. The script will run after first time
installation and subsequent updates to the monitoring-integration component.

* Enable single authentication across the UI and Grafana dashboards. (Spec at
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How will be the navigation from tendrl UI to grafana dashboard handled? embedded or re-directed. please provide the details

* Script to configure Grafana to directly use time series db i.e Graphite and
load the json configurations. The script is executed after the
monitoring-integration service is started. The script will run after first time
installation and subsequent updates to the monitoring-integration component.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it a setup/first-time-installation script for grafana configuration? How are we going to execute the script on package installation and update? Shall we initiate the script during package installation?

@r0h4n
Copy link
Contributor

r0h4n commented Aug 8, 2017

@anivargi Can we close this spec, we seem to have finished the work items here

@nthomas-redhat nthomas-redhat merged commit 7340016 into Tendrl:master Aug 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants