I’m Marcus. I’m a Developer Advocate at Grafana Labs. I’m the author of most of the plugin documentation (guides and tutorials) and I have written and published several plugins for Grafana 7.0. I also review and publish plugins from the open source community.
For the coming weeks, I’m going to try something new. You’ll be able to schedule a 30 minute time slot with me to chat about anything related to plugin development for Grafana.
I’ll do my best to answer any questions you have, help you troubleshoot bugs, or to give you a kickstart in setting up your environment for building your first plugin.
We can also walk through open questions and testing procedures for plugins you submitted for review.
Salut for reaching out like this. I can’t say how useful this would been when I was developing my panel plugins. Nevertheless, you have been super helpful in addressing the issues I have run into with the Grafana 7/react related teething problems.
The one thing I would suggest - look throuth the various web tutorials - especially the ones from grafana.com - to see which ones are now out of date. and, if you can, delete them or redirect to the current state of affairs.
Thank you for the kind words! Great work on getting your plugins ready for 7.0
We try to update tutorials and documentation whenever we introduce changes, but sometimes we miss. If you do spot outdated documentation, let us know and we’ll get it fixed!
Not specifically for data sources, but every code snippet is helpful to me. I try to implement an additional authentication sso-provider (ID4me protocol, using oidc discovery in front of “generic_auth”) as backend plugin. More backgorund details in this post.
However, thanks for your link list above… I will check (I guess there wont be any concrete example for my use-case)
I have a suggestion - could it be possible to post the main points of the chats to somewhere.
If so, we initially look for answers from there, and we’ll be able to decide whether to contact you or not.
Plus, you don’t need to explain the similar questions over and over again.
Out of the five sessions I’ve had so far, I’ve yet to receive the same question. Even related questions become unique since it’s in the context of a specific use case.
I’ve been keeping anonymous notes for each chat I’ve had so far. I summarize those notes and forward them to the engineering teams which hopefully will result in better docs, APIs, and features down the road. Not sure what the best way to share the notes publicly would be. Ideally I’d prefer to improve the docs rather than maintaining a list of Q&As. That being said, I’d love to do a blog post every now and then where I address the questions in written form.
On a personal note, I’d just like to add that everyone has really been super friendly and I’ve had so much fun learning about what kind of plugins people are building. The vast majority of plugins are in-house plugins that end up never being published, so I’m incredibly grateful that you’re willing to share what you’re doing with the plugin platform
@marcusolsson - In regard to signing (in my case private) plugins…
It was unclear that “creating an API key with PluginPublisher role” was done after and inside my Grafana Cloud account. I created a grafana.com login and was then spinning trying to find where to create a plugin-signing API key. It wasn’t until I went a step farther and created my Cloud account that it became clear. Perhaps you could add some clarity here for future developers. Sign a plugin | Grafana Labs
Hello,
I am trying to sign my own Plugin, but I struggle a bit with the process.
At first I created an cloud account https://skowalski.grafana.net/
Then I was trying to create an Api Token following this documenation: Create API keys | Grafana Labs
Here I am missing the PluginPublisher role.
When I know try to sign the Plugin with
I get the following log:
Building manifest…
Signing manifest…
Error: Error signing manifest: Token invalid
at Object. (/home/ubuntu/.npm/_npx/2627/lib/node_modules/@grafana/toolkit/src/plugins/manifest.js:165:31)
at step (/home/ubuntu/.npm/_npx/2627/lib/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:140:27)
at Object.throw (/home/ubuntu/.npm/_npx/2627/lib/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:121:57)
at rejected (/home/ubuntu/.npm/_npx/2627/lib/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:112:69)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
From here on, I don’t know what to do. Any help would be appreciated.