stephenyeargin / hubot-grafana

📈🤖 Query Grafana dashboards
http://docs.grafana.org/tutorials/hubot_howto/
MIT License
154 stars 48 forks source link

Per room/channel configuration #90

Closed kstevena closed 3 years ago

kstevena commented 5 years ago

Is your feature request related to a problem? Please describe. Current hubot-grafana only support one configuration, when several configurations are required, multiple bots needs to be instantiated

Describe the solution you'd like I propose to add new commands to set the configuration and use robot.brain to store it. When request will come in the appropriate configuration value will be retrieved from the brain.

Describe alternatives you've considered None

Additional context None

I'm considering to prototype it and make a PR however I'm not much skilled on JS/Coffeescript so i would definitely need reviews of it :) Does it has a chance to be accepted?

stephenyeargin commented 5 years ago

Interesting idea. I generally would welcome a PR to do something like this, but I would want a few things to be met:

Aside from that, it may be helpful to describe a specific use case of how you would expect the end user to interact with the bot. Do they need to switch out the configurations before issuing the "normal" commands?

kstevena commented 5 years ago

Great, I got something working allowing different config per channel, but it definitely requires tests and documentation. Backwards compatibility was definitely considered before pushing any requests.

I have also a couple of other thing in progress (including MS Teams support).

Anyway cleaning/testing/documentation/seggregation of the different enhancements needs to be worked on my side, hoping to be able to submit something soon.

Seraf commented 5 years ago

Hello, any news about this please ? looks awesome and totally suits my needs !

kstevena commented 5 years ago

How would you like this capability either through env variables or by issuing specific commands within the channel? I need to rework a bit my change as it is not backward compatible and no test written yet.

Seraf commented 5 years ago

Thanks for the fast reply :-) I'm using multiple organizations (one per customer) and one channel per customer too. Ideally, I'd like being able to centralize all customers graf on one channel (the ops one) to manage all api keys. The bonus point would be to allow my customers to use their own api keys on their channel. I prefer env variable which are versionables/reproductibles and declaratives. What do you think about this usecase ?

kstevena commented 5 years ago

@Seraf, I just submited what I have made on this topic. My use case is slightly different, not on slack but on MS Teams, and due to the work & ecosystem environment, its not easy to introduce multiple instances of the "same" bot, then interest to have a single instance capable of serving multiple users in different room/channels, then as unlike you I don't know who will use it, I can not manage keys/hosts through env var, then the reason to go with the brain (backed by a persistent db). as mentionned in the #93 PR it only support one grafana backend per room/channel, which I understand is something you also want to get rid off, is that right? I guess this should not be a big deal to implement.

On my side I still have a couple of changes I would need to submit first about the MS Teams support before doing other changes.

stephenyeargin commented 5 years ago

@Seraf / @kstevena With v2.3.0 out now, has the requirements outlined in this ticket been satisfied?

kstevena commented 5 years ago

@stephenyeargin mine is satisfied, but as far as I understood @Seraf may have slightly different needs:

Seraf commented 5 years ago

Hello,

Sorry for not getting back to you earlier... Yes, my needs are a bit different and have been well summarized, but it's more tied to a managed services provider activities, but I'm pretty sure that it's a "common" need in hosting companies ;-)