Grafana Plugin Development Office Hours

Hi,

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.

Book a time slot

This will be fun!

10 Likes

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.

Thanks again,
Michael Moore

1 Like

Thank you for the kind words! Great work on getting your plugins ready for 7.0 :muscle:

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!

1 Like

Hello, great idea to open this new communication channel (without using a github PR !)

Nothing on my side as PR is already in the pipe (and another in grafana/plugin-validator repository)

I will contact you if needed

1 Like

Hi Marcus,

Highly appreciate your post here. I am quite new to backend-plugin implementation.
Found several docs, and tutorials on this topic.

Besides that, is there any further code-starter example than this one that you can suggest?
https://github.com/grafana/grafana-starter-datasource-backend.git?

I assume that you’re looking for examples on backend data sources specifically?

Here are a few examples of backend data sources that you can use for inspiration:

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)

Greetings @marcusolsson

Much appreciated for this brilliant idea!

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.

Thanks again.

1 Like

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 :heart:

2 Likes

@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

@alexanderzobnin
@marcusolsson

Hi Marcus,
Hi Alexander,

Regarding my use-case (providing an additional auth provider as backend-plugin ). I have a concrete question:

Is it possible to patch/extend this object (LoginServices) via plugin (e.g. type page)

If not I think the best way would be to proceed with PR implementation instead of plugin as already done by other people see below

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

export GRAFANA_API_KEY=<MY_API_KEY>
npx @grafana/toolkit plugin:sign

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.

Best regards