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

grafana/monitoring: request for github client credentials #2370

Open
jbergstroem opened this issue Jun 30, 2020 · 21 comments
Open

grafana/monitoring: request for github client credentials #2370

jbergstroem opened this issue Jun 30, 2020 · 21 comments

Comments

@jbergstroem
Copy link
Member

As part of improving monitoring, I've set up a grafana, influxdb and telegraf instance at Joyent, available at https://grafana.nodejs.org. I would like to set up a github oauth2 client to handle ACL, similar to how we do authorization with jenkins.

cc @mmarchini

@jbergstroem
Copy link
Member Author

To elaborate, we will collect vm basics (cpu, ram, disk, net, ..) per host and use grafana to both make dashboards available (to build and likely a larger crowd) as well as setting up alerts to notify people once things are not working as intended.

@AshCripps
Copy link
Member

Will this be targetting a subset of machines or do you plan to roll it out to all machines?

@jbergstroem
Copy link
Member Author

jbergstroem commented Jun 30, 2020

Will this be targetting a subset of machines or do you plan to roll it out to all machines?

Telegraf supports all kinds of architectures, so this basically boils down to incorporating the ansible role as well as getting it deployed across the fleet. Right now I did this as a "make it work"-work, but will add the automation bits at some point.

For now, I will focus on critical machines: www, ci, ci-release, backup, unencrypted and gh-bot (I'm almost done)

As you can imagine, we can do much, much more with this setup other than monitoring such as graphing jenkins build times over time or whathaveyou. I think allowing interested users to create their own dashboards (and share with the broader community) would be a great goal.

@MylesBorins
Copy link
Contributor

If you are looking to get a +1 for using a GitHub app you should open an issue on http://github.com/nodejs/admin to ask permission with a link to the app you plan to install (assuming I understood the request appropriately)

@mmarchini
Copy link
Contributor

I suggested Johan open an issue here first to share more detailed context (and to let folks know this is being worked on), and then reference it on nodejs/admin.

FWIW I'm +1 on this effort, it's something I wanted to implement a while back but never got the time to do.

@mhdawson
Copy link
Member

mhdawson commented Jul 2, 2020

Thanks for the heads up. Once we can log in I'd be interested in getting access.

@AshCripps
Copy link
Member

Telegraf supports all kinds of architectures, so this basically boils down to incorporating the ansible role as well as getting it deployed across the fleet. Right now I did this as a "make it work"-work, but will add the automation bits at some point.

@jbergstroem I'd be happy to help with this, I also think it would be good to get the monitoring host itself into ansible so the machine can be recreated easily in the event of disaster.

@mmarchini
Copy link
Contributor

Not sure if there's anything that can be configured on Grafana (don't know if GitHub allows this level of granularity), but the OAuth requests read-only permission to all orgs it can, not only to nodejs.

@jbergstroem
Copy link
Member Author

Hey all - just an update: it works but for it to scale we really need the enterprise plugin to "sync" teams similarly to the jenkins plugin. I got help reaching out to the grafana team and they will help us out! I had a few days off but will be back in action from tomorrow and will finish setting this up. After it has been done I would really appreciate all help we can get:

  1. Help getting telegraf installed on as many hosts as possible
  2. Create dashboards to provide visibility over service quality
  3. Add more ways to measure the quality of service (for instance, pulling data from Jenkins)
  4. Create alerts and make sure the proper people/teams get them.

@github-actions
Copy link

This issue is stale because it has been open many days with no activity. It will be closed soon unless the stale label is removed or a comment is made.

@AshCripps
Copy link
Member

Adding the never stale label as this will still be useful to have - espically the alerting for the files like the rootfs filling up as it did last night - #2592 (comment)

@AshCripps
Copy link
Member

I wouldnt mind have a go at setting up the alerting if someone from @nodejs/build-infra wouldn't mind sharing the admin password to the grafana with me.

@richardlau
Copy link
Member

AFAIK the grafana admin password wasn't added to secrets. cc @jbergstroem

@jbergstroem
Copy link
Member Author

jbergstroem commented May 20, 2021

AFAIK the grafana admin password wasn't added to secrets. cc @jbergstroem

Will add -- done!

@jbergstroem
Copy link
Member Author

I wouldnt mind have a go at setting up the alerting if someone from @nodejs/build-infra wouldn't mind sharing the admin password to the grafana with me.

The ACL for our grafana is inherited via the github groups btw.

@AshCripps
Copy link
Member

@jbergstroem oh so does that mean we should have admin rights already? or is that for infra members only

@jbergstroem
Copy link
Member Author

@jbergstroem oh so does that mean we should have admin rights already? or is that for infra members only

I don't think admin necessarily, but you should be able to create/edit dashboards which also implies alerting. Let me know if that's not the case.

@AshCripps
Copy link
Member

I see to only have a view role - doesnt let me edit dashboards at all and dashboards is the only thing in my side menu

@jbergstroem
Copy link
Member Author

jbergstroem commented May 20, 2021

I see to only have a view role - doesnt let me edit dashboards at all and dashboards is the only thing in my side menu

I can't quite figure out how the inheritance from the group works; logged in as admin and gave your user admin rights. As we scale we can also assign "editor" roles

@AshCripps
Copy link
Member

Great that works for me now, thanks!

@AshCripps
Copy link
Member

Got a basic alert setup, should trigger when the machines hit 95% disk full (let me know if thats too high). Currently it will post a message to #nodejs-build-infra-alerts in the openjs slack (thanks to Brian for helping me set up the integration).

I made a new chart below the current disk usage to show a percentage and alert on that
image

I did this to stop it constant triggering cause the other graph uses total as well which would causing it to trigger.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants