Create InfluxDB Templates to Make Operations Workflows and Use Cases Scalable and Reliable
Session date: Apr 21, 2020 08:00am (Pacific Time)
InfluxDB has adopted declarative coding to manage InfluxDB infrastructure and configuration state as a template package, which can be ported to other instances, cloud or on-prem. Teams using InfluxDB can benefit from this declarative packager to build their own templates that encompasses not only pre-canned dashboards but also other configurable aspects, such as Telegraf agent configuration file, and thus, turn an InfluxDB deployment into an APM, NMP, Kubernetes monitoring or any other purpose-built solution.
Watch the Webinar
Watch the webinar “Create InfluxDB Templates to Make Operations Workflows and Use Cases Scalable and Reliable” by filling out the form and clicking on the download button on the right. This will open the recording.
[et_pb_toggle _builder_version=”3.17.6” title=”Transcript” title_font_size=”26” border_width_all=”0px” border_width_bottom=”1px” module_class=”transcript-toggle” closed_toggle_background_color=”rgba(255,255,255,0)”]
Here is an unedited transcript of the webinar “Create InfluxDB Templates to Make Operations Workflows and Use Cases Scalable and Reliable”. This is provided for those who prefer to read than watch the webinar. Please note that the transcript is raw. We apologize for any transcribing errors.
- Chris Churilo: Director of Product Marketing, InfluxData
- Russ Savage: Director of Product Management, InfluxData
- Ray Farias: Software Developer, Sudokrew
Chris Churilo: 00:00:00.864 All right. So let’s get started today. And today we are going to be talking about InfluxDB Templates. And you might have heard about this in some of our office hours. But, if not, we have our wonderful Russ Savage, director of product management, that’s going to give you a really nice overview of what templates are and how to use them. And then we have Ray Farias, who is one of our community members, who’s actually going to share with you a dashboard that he built, a monitoring solution he built, the template that he generated from it and walk you through how he built it, how you can build your own template, and some of the things that you should watch out for, some of the things that he found challenging, and some things that he thought were really easy. So you can hear directly from one of the community members about his real-world experience. So with that, I’m going to pass it on to Russ.
Russ Savage: 00:00:54.191 Thanks, Chris. Hi everybody. Thanks for joining the webinar today. I’m excited to talk to you guys about InfluxDB Templates and really provide kind of a background so that you guys can get started building your own here. So I just want to - I just want to start off with a couple of things that we’ve done in the past that kind of led us to where we are today. And so when you think about kind of the evolution of our products - and I’ve been in Influx for, oh, I guess, almost three years now - we’ve had the ability to import and export various elements of our stack, various dashboards, right? That’s kind of the - that’s kind of the core piece of items that you want to share in a lot of cases. We found people using that and really liking it, sending those to do different team members and all that sort of stuff. But, I think, some of the trends that have come in recent years are the rise of a couple of different pieces. And one of those is this idea of GitOps that a lot of you have probably heard of. So it’s the notion that as a SRE, as a DevOps manager, you manage all the resources in a platform via Git, you track all the changes there, and you’re able to easily control everything via configuration and the command line.
Russ Savage: 00:02:25.480 And we’ve also seen the solutions that people come up with monitoring different stacks and different technologies have become increasingly complicated, increasingly complex. They contain many different pieces. And so you think about all of the different components that you really need to monitor something like Kubernetes, right? It’s many different dashboards. It’s many different tasks, many different alerts, a lot of different components all working together to create a complete monitoring solution. And so sitting there and exporting individual dashboards or individual processes really wasn’t meeting the needs of our users. And so you sort of sit back and think about a couple - how do we solve those two problems? How do we enable true get-ops style workflow on our InfluxData platform? And how do we create this idea that you can share your domain expertise for monitoring a particular technology? How do you bundle that and share that really easily? And so the solution for both of those cases ended up being what we’re introducing as InfluxDB Templates.
Russ Savage: 00:03:38.580 And so if we jump to the next slide, InfluxDB Templates is really a combination of any resource in InfluxDB packaged together into a single bundle that you can install with one command. And so that means that you can package together 1 dashboard, 10 dashboards, 100 dashboards. You can package the Telegraf configurations you need for monitoring that dashboard - for collecting data from that dashboard or for that dashboard. You can package the tasks to downsample or manipulate that data. You can package all of the monitoring and alerting scripts that are required to build out a complete monitoring solution all in a single file. And so when you check that into GitHub or you share that with a colleague or another user, all they have to do is run one single command. They get a summary of all of the information that’s available to them. And they can import it and get started monitoring that solution really quickly. And so it’s truly delivering on our promise that we’ve had for - that we’ve had for a really long time and we keep in mind as we develop new features, increasing that time to awesome for our own SRE teams on our own DevOps teams monitoring our stacks, but also trying to increase that time to awesome for the community members.
Russ Savage: 00:05:06.644 And so, with InfluxDB Templates, a couple of things are really possible now, which have been a little bit difficult in the past. I know many of you out there have read through a ton of different blogs for setting up different monitoring solutions, a bunch of articles, probably a lot published by us. But a lot of that blog - there’s the content about the actual monitoring, but then there’s a large number of steps that you need to actually follow in order to set up and get the monitoring solution going. And so we really tried to - InfluxDB Templates aims to create kind of a one-command way to really bring all of that information into your system. And then the other thing is you’ve started to see teams that are managing InfluxDB via Configuration as Code. So being able to check out a dashboard, make changes, check it back in and deploy that change into your dashboarding tool, that workflow is now becoming possible via the use of these templates.
Russ Savage: 00:06:08.917 So if we jump to the next slide - InfluxDB Templates, it’s a little bit ephemeral. And that’s why it’s really nice to have Ray here to walk us through a concrete example of how he built one. But I think a couple of key pieces that I really want to touch on for Templates that are important, right? So it’s the fastest way to build and share with Influx, right? And so if you’re thinking about, “How do I give this dashboard to a colleague? How do I give this set of components of Influx? How do I share that with a colleague?” InfluxDB Templates are the answer. The key to a template is that it’s really built by the subject matter experts, right? And in that case, it’s probably you. I’m a product manager. And so that means that I have very superficial understanding of a lot of different technologies. But InfluxDB Templates is a way for you as an expert in a particular stack or a particular technology - maybe it’s a technology that you use on a regular basis or maybe it’s a technology you developed, right? But it allows you to publish a monitoring solution for that particular technology really, really easily or to encapsulate the knowledge that you’ve gained over your experience of working with that technology for a number of years into a set of dashboards, into a set of tasks for that information.
Russ Savage: 00:07:35.493 The way that it works behind the scenes is via a packager command. And that packager command - it can accept 1 asset, 10 assets, 100 assets. So it doesn’t matter how large the number of things that you need to install at one time is. You can install it all with a single command. And so it means that you can go from a completely empty InfluxDB to an instance that’s fully populated with hundreds of dashboards and tasks and buckets, everything running really, really quickly. And at the end of the day, right, the whole reason that we’re here, the whole reason you’re using a data-analytics platform such as InfluxDB is really to move from this notion of data in its raw form to knowledge that you get from the data, right? And so anybody familiar with kind of the phases of data and how it actually translates into knowledge - the goal is to get you from the raw information to knowledge as quickly as possible. And that’s what we’re trying to do with InfluxDB Templates. If we jump to the next slide, we can get into some of the details of how to create a template. And, again, this is just a high-level overview of the steps. And Ray’s going to walk through all of the details that he was working through as well.
Russ Savage: 00:09:00.431 But experts like you that build a set of assets within their InfluxDB instance - you can use our open-source products. You can use our cloud products - it doesn’t matter - build up a set of assets, dashboards, alerts, agent configurations, anything you need. You run a single command on the command line. It generates a file. That file contains all of the assets that you’ve created in your instance. You can pull out individual resources. You can pull out all your resources, or you can pull out a list of resources based on a label. So if you’ve got a lot of stuff in your instance and you want to label everything, a particular InfluxDB Templates solution, you can export just the items tagged with that label. It builds a file. It’s self-contained, right? It’s a YAML file. It could be a JSON file. Any of those are supported. We even support JSONite. So it creates a file. And that file is actually the contents - that’s the main component of your template, right? And it’s designed in the format of a CRD. So anybody familiar with Kubernetes should be really familiar with the style of the exported file. Now, optionally, around that, you’ve got a file full of a bunch of assets. You probably need to build up some complimentary materials. It could be as simple as a readme. It could be as simple as a blog. It could be anything. It could be sample data sets. So, for example, if you’ve built a template designed around analyzing a particular data set, may be out of Kaggle, maybe out of some other - from some other data tool, you can provide links or examples of how to import that data easily. You can add in data quality, ETL tools. Anything you need that really complements the template that you’ve set up, you can define those.
Russ Savage: 00:10:57.952 And then, finally, you can take that template file and any of those complementary materials and drop them in a shared space, right? And we’ve created a Community Templates GitHub repo that has a ton of examples that we’ve built and community members have built. So we’re trying to get as many examples and as many people leveraging the Community Templates repo. And there’s a link at the end of this webinar. But you can also host it yourself if you’d like. So you can put it anywhere and link it into your blog, link it to wherever you need to so you can fetch that information. And the other cool thing is, you can pull these - you can pull these templates directly from a URL instead of a local file. So if you’re hosting that template file somewhere on the internet, you can run the command to pull from that URL, and it can bring that information into your Influx instance without you having to load anything locally, which is very useful when you’re setting this stuff up. So, again, that’s just a quick overview of the different steps that you really need to set up a template. And Ray’s going to walk through those in a little more detail in a moment. So if we jump to the next slide, I am going to hand it over to Ray since I’ve given him a bunch of build-up. So take it away, Ray.
Ray Farias: 00:12:29.469 Thanks, Russ. Yeah. So this is really fun, building out the dashboard and the template for this. It’s really amazing. So let’s see. So this is the template that I got to build out. A little background on this - I usually manage a small team of developers. And we’re mostly all over the stack. And we used Jenkins as part of our bill deployment and process. And this dashboard was kind of built with the goal in mind of, throughout the day, I’m not necessarily staring at the dashboard or nor do I want to. But I’ll get taps on the shoulder that maybe something went wrong on a certain build job of our Jenkins thing and maybe like, “Oh, our staging deployment is down for some reason.” And I wanted to build something where I could go to first and kind of get a high-level view of everything. And, of course, demo, of course, it’s not working right now.
Ray Farias: 00:13:55.383 Well, isn’t this fantastic? I’m sorry. One second.
Russ Savage: 00:14:03.652 Uh, no problem. This is why we love doing this stuff live. So -
Ray Farias: 00:14:07.707 I mean -
Russ Savage: 00:14:08.022 I think everybody on the call has been in a situation where they’ve been showing off their amazing work and something has gone wrong [laughter]. So nothing to worry about there. So here you can see that he’s leveraging our InfluxDB Cloud. So anybody who isn’t familiar, InfluxDB Cloud is kind of the fastest way to get started using InfluxDB, no credit card required. It’s a free tier that lets you jump in, load data into the system, really get started and get everything working however you’d like. Make sure that it fits your need, and then, obviously, from there, it’s a total pay-as-you-go model, right? So then you have as much scalability as you want. All right. Looks like dashboard is getting populated. So I’ll hand it back over to Ray.
Ray Farias: 00:15:04.369 Thanks, Russ. Yeah. It was really easy getting started with this cloud account. So here’s some data. And so the plugins that we used for this - it just kind of sort of sent over just the status of the jobs, like if the jobs were good or bad, the duration of those jobs. And, from that, I kind of built this dashboard where, okay, if somebody came to me, tapped my shoulder and said, “Something’s wrong,” then I could look at this dashboard and kind of immediately see, “Is that true?” and what might be wrong. And so from all that - sorry. So let me just show you the thumbs down. This is the usual kind of graph that you want to build here just based on a good thumbs up or thumbs down. I started with the Query Builder for this one, and then, after a while, I kind of ended up with this Flux code for it, just whittling it down. Now, this might not look like anything here, but the biggest thing that I found was working with the table data here to build these graphs. When I first started, I was just kind of clicking around and building these cells, not quite knowing what I was doing, for example. And I was just clicking around and just not getting anything here.
Ray Farias: 00:16:35.751 But the biggest part here is viewing the raw data and seeing what these queries pulled out. Getting familiar with that is really nice to get started with the cells. And so just explaining this dashboard, this side here with the thumbs up, thumbs down - quick little high-level report of what’s good or bad. This here, Recent Job Failed, it’s kind of a - give the report of the name of the job that recently failed. The most Volatile Job here - something I kind of played around with. It’s a query that kind of aggregates the job that failed the most often within a certain time period and that kind of brings the name up to the front here so you can see it. And then this graph down here, it’s kind of like those good or bad deployments split up. And so we could see the number of failures to the number of successes, has it all grouped by name there. And so I thought this was a very useful kind of dashboard for me to, yeah, kind of get a big high-level view of what was going on with my stack or my Jenkins instance.
Ray Farias: 00:18:08.544 I’m going to go into this a little bit. Here you go. Kind of show you the query that I built out here. Oops. Oh, one good tip I want to throw out there was that I was able to - one of the webinars that were available for the Flux command or the Flux language helped out extremely. So if you’re looking to get started with this, this video here is tremendously helpful. It got me through a lot of blockers, explained a lot of things. Sorry. One second.
Ray Farias: 00:19:19.661 All right. So I’ll go ahead and sort of walk through what I had to do to set this up if you have a Jenkins instance running. And so what you’ll need usually is the URL of your Jenkins instance, a username, and a password for that. I’d recommend generating a new username so that you can manage security for that. Once you have those, you plug it into the Jenkins Telegraf configuration, which - don’t mind me. Yes, that’s my password. If you want to connect to my instance, you can. That’s no problem. It’s public for now.
Russ Savage: 00:20:31.002 All right. So talk us through kind of what you’re doing here and the steps required to actually do this. So you’re creating your Telegraf configuration that actually connects into Jenkins here?
Ray Farias: 00:20:44.158 Right. Correct. Yeah. So here’s the URL for it, an admin, and a password. You connect your Telegraf there. And it starts pulling the data into your Influx instance. For me, I connected it straight to the cloud. So actually this is the output. And this is the input. So here’s Telegraf’s input for it, and then, of course, I have an output here with my token. I don’t want to show that [laughter].
Russ Savage: 00:21:13.030 Have you used Telegraf before, or it was just brand-new?
Ray Farias: 00:21:17.016 This is brand-new, first time. And I would say that getting the Telegraf connected to the dashboard - I got that set up within five minutes. That was easy, especially with the Jenkins credentials. I mean, it was plug-and-play.
Russ Savage: 00:21:30.620 Nice. Yeah. So anybody out there who isn’t familiar with Telegraf - it’s an open-source data collection agent. It has, I think at last count, about 250-plus different plugins. Basically, if a technology is out there, there’s probably a way to connect and bring its metrics into Telegraf. Really useful. It handles batching and grouping. And it has predefined schemas for a ton of different technologies so that you can then take advantage of a lot of the pre-built solutions out there. So as long as you’re using the same Telegraf configuration - so if you’re using Jenkins here, for example, your data is going to be pulled in into the same format, which means that any solutions that are built with that format in mind, that data schema in mind, should work for you, including this one.
Ray Farias: 00:22:25.456 Yeah. Awesome. Let’s see. So once you have on the Telegraf connected and pulling data, once it populates to your dashboard, you can start exploring it through the Data Explorer. And this is where I first started creating - I started to learn about my data and the cells and whatnot. So once you get data coming in here, you’ll see everything start to populate and can sort of build these queries out and see your data. Of course, you want to be in the Raw Data View and really start to see what you’re getting here. And then this is kind of all I had to work with. There’s two buckets here. One is for data performance of the node. And this is okay. And then there’s the job. And, as you see, there’s just two fields that you could build your charts on, duration and report code - or result code.
Russ Savage: 00:23:26.450 So just jumping back there, you did Data Explorer a couple of times. So when you’re first setting up Jenkins, were you familiar with how the data was going to flow into Influx? Or did you know anything about how that information would look once it actually got into the system?
Ray Farias: 00:23:42.183 No. I used this to explore it, for sure. I spent a lot of time here in Data Explorer.
Russ Savage: 00:23:48.581 Awesome. Yeah. It’s really designed for you to get really comfortable with the data that’s actually flowing into the system really quickly, and then, obviously, there’s a lot of pointing and clicking here. But you have access to the full Script Editor when you need it. So once you get some information and you want to do some broader transformations, you have the full power of Flux here. And this also includes things like type-ahead and autocomplete. And we’re adding in more capabilities as we move on. So, yeah, take a look.
Ray Farias: 00:24:24.698 Yeah. Yeah. I usually started off for those - looking to build some stuff, I started off in Query Builder, got the general shape of my data here. Then I’d switch over into Flux, and then I’d start using these functions. And the documentation here is really good, really quick examples of these functions in Flux, also a good place for your variables too. Variables are really great for these dashboards. They keep your dashboard cells dynamic. So, for example, these v.timeRange stamps. Or here I have my jenkinJobNames as a variable so that, in my dashboard, I can sort of have these dropdowns and look at - if I had different Jenkin instances to monitor, I could use these variables to kind of control this dashboard view for that.
Russ Savage: 00:25:16.520 Yeah. Variables are a great way to take a single dashboard and make it valuable for any number of hosts or any number of different configurations. And you can define variables. And you can export and import variables and include those in your templates just like anything else. So it’s a resource that you can leverage in Influx. And you can use any Flux query you’d like, but you can also do CSV and Map types in there as well.
Ray Farias: 00:25:44.493 Yeah. So Variables, Templates, and Labels get exported, right, when you create these dashboards? Yeah, it’s really cool. Let’s see. Let’s see what kind of data we got here.
Russ Savage: 00:26:17.032 All right. So you’ve got data imported via Telegraf. You’ve explored the data. You kind of understand kind of what it looks like. You started building out. And then you start building out some dashboards. So can you walk us through kind of the experience in building out the actual dashboard?
Ray Farias: 00:26:33.103 Yeah. Sure. Let’s see. So building out a dashboard - let’s start from scratch here. We do that, start making the cell. So you kind of explore a little bit if you want beforehand. But I’ll just jump right into it. And so let’s build a little dashboard. Let’s build that first thumbs-up one, real basic. So we filter out by the job. So I’d be exploring here. I’d be clicking around, seeing the data. So I’d want the result code. I don’t quite care about the host right now. Or rather, I could use the variable to determine that. And maybe right now I don’t care which one of these that I’d like. And perhaps I’d want to aggregate them together in one group.
Russ Savage: 00:27:33.048 Yeah. So Flux is our query language behind the scenes. And so anything you’re clicking around in the UI, that’s writing Flux code behind the scenes. And it comes back. The data comes back in Flux in the CSV format. We call it annotated CSV. And so this Raw Data View is really just the raw data coming back from Flux. And it gives you all the information you really need, column types, the different tags, the different fields. And then you can bring that in and start tweaking or manipulating that data using Flux.
Ray Farias: 00:28:15.055 Yeah. So here, I have it filtered down to failures and successes. And now I just want to count all the failures. So I have it filtered by that. This is sort of how I want it for now. I’ve got a couple of tables generated. I got two. I could go into the Script Editor here and kind of refine that a little bit. I want to take maybe this and whittle it down to a single value for that. And I know that this single value uses the value. So I’d want to aggregate. So I want to aggregate all of the successes down into a single table. So I just want to count.
Ray Farias: 00:29:21.322 Sorry. Let me just speak a little bit more. Let me add this host filter. Sorry. |> count(). Huh.
Russ Savage: 00:29:45.592 Yeah. So, basically, what that’s going to do is - the important thing about Flux - and, again, as you pointed out, great resources, that webinar. But the way it comes back - the data is grouped by the different tags that you’re actually return. And so if you look at the - one of the things that’s really important to understand about Flux is group keys are very useful in how you actually run analysis on here. So in this case, if you look at the data that’s coming back, that group key is actually at the very top of this Raw Data View. You’ve got all of the different true-false, true-false. Something that’s true - that means it’s included in the group key. So, for example, in this case, if you want to do something like group by a particular host or group by a particular name, you would actually apply a group function that you could specify the particular column that you want to group by. In this case, it might be Name. And then when you apply that count function to that, it will then say, “For each of the items in the name -“ you then would do account for each individual one. So, again, as you start to explore and start to learn more about Flux, you get a sense of how powerful that group key is. So it’s really useful for reorganizing and restructuring your data there.
Ray Farias: 00:31:19.888 Nice. Yeah. And these documentation here are so helpful [laughter]. Oh, my God. What am I doing wrong here?
Russ Savage: 00:31:32.145 So it looks like - so you’ve gone through, and you’re basically creating your dashboard cells. So once you have a dashboard that you’re really happy with, that you have the Flux that you’re really interested in, what’s the process for actually exporting and creating that template?
Ray Farias: 00:31:50.217 All right. So exporting your dashboard out of your local Influx instance is very, very simple. But first, I want to give you a tip about labels. Before you go and export, I’d recommend creating a label, applying those labels to any variables that you want to - that your dashboard uses. Apply those labels there. Apply it to the dashboard itself. Apply it to any relevant alerts that you’ve created. That way, when we export it, it can be all in one file. Otherwise, when you export, it can just export everything all at once. But this is very helpful, especially if you want to create a community template or share it with somebody else. Then you can just export only the templates that you want with that label. Another thing you’re going to need is a command line. When you’re using the Influx command line tool, it is a token. So make sure you generate a token for yourself. Once you have your token and your label created and you’ve applied those labels to your variables and your dashboards, then we can go ahead and use the Influx CLI tool to export. And so here’s the command that you’d run “influx pkg export all.” We’re going to use the “-t” to pass in our token. “-o” stands for organization. This is the name of my organization. If you don’t know your name, you can get it there. And then here, in the filter flag, double dash. Make sure you see that there. So it’s “ -filter”. And we’re telling this filter flag to filter by the label name and to get any value of Jenkins. And so, this way, it only exports all the Jenkins configurations that you need.
Ray Farias: 00:33:48.948 So here we have one of the gauges, a couple of the gauges here, a couple of graphs. Let’s see, a couple of more graphs. See. So here’s the dashboard. That’s the Kind. Here’s a variable. So that’s the configuration file that it generates and it spits out. So you’re going to just want to remember to save that to a file. And that’s how you export with the Influx CLI.
Russ Savage: 00:34:31.095 Cool. So -
Ray Farias: 00:34:31.221 All right. So -
Russ Savage: 00:34:31.664 -once you’ve got this - once you’ve got the - once you’ve got that file created, what are some of the other things that you noticed along the way as you were building this out?
Chris Churilo: 00:34:45.343 Why don’t we just walk through some of those notes that you have on your presentation, Ray?
Ray Farias: 00:34:50.608 Let’s see. So some of the things - some tips, of course, using the Raw Data, viewing that table. Understanding how the Flux language brings everything together is really important. Some issues that I ran into - well, using variables in your dashboard is a great way to increase the power and get more value out of the dashboard, so playing around with the variables, adding things there. I found a little issue with the query variable. I wanted to use it to get certain values out, like my job names in my instances and use that as variables for my template - kind of in a dynamic way. Had an issue with not getting that working quite as I expected. But I believe that’s still a bug being worked on soon. Let’s see what else notes that I have here. Variables are great. The histogram that I had here - I wanted to really use this a lot more, get more use out of it as a gauge of volatility on my production servers or whatnot, though, I’m really bad at data and that stuff. So I had a hard time kind of using this graph. But I feel just a little bit more exploration on this and I could probably get it. Let’s see. Learning about Flux, I feel like I just need to dive in a little bit. I only spent maybe just an hour or two and then watching that webinar about Flux. And I was able to create these dashboards, but I felt like, if I had a little bit more time and I dove deep, I could get it to where I want or feel a lot more comfortable with the Flux language and really start generating the charts that I need or that I’d like to see.
Ray Farias: 00:36:45.586 I didn’t learn about this histogram function for a little bit while I was messing with this gauge here. So I found that through just the Query Builder here and just exploring these. So I spent some time just reading these and just tinkering around with that. So when you’re building out your scripts, I did not know that - well, maybe I was just unfamiliar with what I was doing. But when you see these, these, these are all variables. And when you’re building out a script here, you have this little time window, this little time-range toggle. And that changes the whole dashboard. So when I was building it, I was changing this and getting different data. And it was changing it up here. And so I would - I don’t know. This is my own little thing. I like to name things. And so, in these cells, I would name it with status temp in the last hour or so. But then because I say, “Oh, the past hour here,” I’d save it. But then I’d go to another cell and kind of say, “Okay. Well, this one is the past 15 minutes of the recent job.” But it changes it here. So be aware of that. That kind of got me. And I was like, “Why are all these names not making sense anymore [laughter]?” But it was just me not understanding how these things were all connected, this time-range value here. So careful for that. That kind of caught me for a little bit. What else?
Russ Savage: 00:38:22.555 Yeah. I think that’s the biggest - the big thing about this is we’ve built a lot of these capabilities. And what we really need is community feedback like Ray’s to make sure that we’re building an experience that users want. And so all of the issues and comments that he ran into, we passed to our engineering team to smooth that out. And, I think, once the community starts really taking advantage of these, there’s going to be a ton of more capabilities, either feature requests or things that we can do to smooth out and make the process better, that we want to take in and improve the product overall. And that’s really the value of community in this open-source tooling is getting that feedback. And so I encourage you to reach out and get in contact with us through Slack or GitHub or anything when you’re actually building a template if you have questions or issues or problems that you run into. We really need that feedback. And we really take it to heart and want to improve this process overall. So yeah. So I really appreciate the feedback. And good feedback or harsh feedback, it all helps us improve as a company. So please let us know.
Ray Farias: 00:39:49.137 Yeah. Thank you, Russ. Yeah, everyone’s input on this - the more eyes on it, it just gets better for everyone.
Chris Churilo: 00:39:58.340 So, Ray, it seems like the majority of the challenges that you were faced with was more about just getting familiar with InfluxDB Cloud. But it sounds like the actual exporting of the template, getting set up, exporting the template was just really simple.
Ray Farias: 00:40:15.213 Right. It was really simple. And I believe with - plus, my Jenkins experience is not, by far, the most - I don’t have a lot of Jenkins experience. But with I have, I built the dashboard that I needed really quickly. Yeah. And I can only see with people with more expertise or more domain knowledge - to see what they can build. For example, the things for my SQL, I would love to see what DBAs come up with that or what people that aren’t DBAs will come up with, what kind of dashboards they would come up, what they would want to see.
Chris Churilo: 00:40:58.893 Excellent. And I think you also shared this template with one of your coworkers. What was their thoughts behind that?
Ray Farias: 00:41:09.313 Oh, well, first, he was really excited about it. Then, I showed them - and then I took the work. And he actually asked me for it afterwards. So he’s using it now to monitor our production stack that he is working on still. So, yeah, that was great. And now he’s building out other dashboards for his other services too and sort of -
Chris Churilo: 00:41:32.573 That’s great.
Ray Farias: 00:41:33.133 -figuring that out.
Chris Churilo: 00:41:33.961 So that really just offers another proof point to what Russ was saying earlier on that you can very quickly build something, share it with somebody, and then they can get up and running. And even though I’m sure your friend is more than capable of building this out himself, he just saved a bunch of time himself, right, by being able to use the work that you did and then probably build upon it as well?
Ray Farias: 00:41:55.463 Oh, yeah. Yeah, he built upon it already. He just tinkered around. He saw the cells that were already there. And yeah.
Chris Churilo: 00:42:03.595 So what we should do is just encourage him to then go back to the GitHub repo, and then, hopefully, he’ll share out some of those additions that he made to your temple. And that really will help to show the community how great this is and how easy it is to build on each other’s experiences. So any other last tips that you might have for anybody getting started? If we just go back to your presentation, we can just kind of take a look real quick. I think you’ve covered on most of the items, right? So -
Russ Savage: 00:42:40.897 Yeah.
Ray Farias: 00:42:41.679 Yeah.
Russ Savage: 00:42:41.864 Awesome. Yeah. So if you just hit the - if you just hit the present button in the top corner here, we jump into slide 19 and wrap this up and take some questions. Yeah. So I just really thank you, Ray, for kind of walking us through your experience there. Again, any feedback and sharing of experiences is really valuable here as we work to improve this. So, in summary, InfluxDB Templates is the best way to share your knowledge with a community, so share your expertise in a single package, a single bundle. It could have 1 dashboard, 10 dashboards, 100 dashboards. It doesn’t matter. It’s still a single command to import that information into your instance. You can easily publish this into GitHub. And as I said, we created this Community Templates repo that has a bunch of templates to get you started. And it’s a way for you to easily share your templates and amplify that with our community. It’s a complete solution. So it has everything. Everything in InfluxDB can be described as in a template, including buckets, dashboards, tasks, Telegraf configurations, monitoring and alerting scripts so you can build a complete solution and export that. And the cool thing is you can then take it and combine it with other templates to stack those on top of each other and really make large-scale solutions.
Russ Savage: 00:44:20.630 As Ray mentioned, right, it’s iterative. So you create something. You share it with the community. Community comes back with feedback. And the solution gets better for everybody, not just the individual, and so really powerful to share that knowledge so that, collectively, we can come to kind of the best way to monitor each of the different technologies out there and really gain that knowledge that everyone is searching for using these data platforms. So I think that’s the end here. I’d love to thank -
Chris Churilo: 00:45:00.439 I think we have one more -
Russ Savage: 00:45:00.832 -you -
Chris Churilo: 00:45:01.152 -slide just to - there you go.
Russ Savage: 00:45:02.278 Oh, yeah, yeah, yeah, resources. Sorry. Yeah. So we got a ton of resources to get you started here. So there’s a blog for introducing the Community Templates repo, the repo itself, as always, the forum, the Slack channel, and a ton of documentation to get started. So, again, love for you to jump in, grab that information and create your own templates.
Chris Churilo: 00:45:31.301 All right. Excellent. So let’s go through some of the Q&A that we’ve got collected. And we’ll make sure that we read the questions and answers out aloud so that we can capture it on the recording. So, Russ, the first question that we have from Schumann Carr is: Is the InfluxDB Cloud - is Telegraf also included in InfluxDB Cloud?
Russ Savage: 00:45:52.410 Yeah, great question. So Telegraf is a data collection agent. And best practices with those agents are to put them as close to the technology that you’re monitoring as possible. So Telegraf itself is a free open-source agent. So yeah. So definitely included. The one thing that InfluxDB Cloud lets you do is you can actually host your Telegraf configurations in our cloud instance and configure Telegraf to pull that information from our cloud. So you don’t have to manage the individual configurations on each machine. Telegraf can pull from a centralized location in cloud, so really useful there.
Chris Churilo: 00:46:35.572 All right. Awesome. So Steve asked, “Do you have any examples of doing this locally and not on the cloud? I have a small instance of InfluxDB. I’m using Grafana for dashboards. I’m just trying to get an idea if there’s anything new here that I’m missing. Our security department won’t allow going to the cloud.”
Russ Savage: 00:46:52.226 Yeah. So all the capabilities that we just showed work locally or in the cloud. And so I think if you’re leveraging Influx and Grafana, you can definitely export and configure the Influx components and the Grafana dashboards. You can put them in the same template and just have instructions for loading them both up. So there shouldn’t be anything stopping you there. So you can basically run one command to setup and configure your Influx instance and a second command to load up all of the dashboards in Grafana, so.
Chris Churilo: 00:47:28.634 Cool. All right. Leon asked, “I’m getting a Gauge special value via another Flux query. It’s nice to have that you mentioned. What is Influx’s position on that feature being implemented?”
Russ Savage: 00:47:40.519 Yeah. So, I mean, we want to make - we want to make building dashboards using Flux super easy. And so there’s two paths there. So one path, you saw the point-and-click Data Explorer. We really want to improve that experience and make sure that our goal is for you to be able to build most of your queries through that point and click interface and really only jump into the Raw Query Editor when you have something complex or something bespoke that you want to do. And so as we build out new capabilities, that’s how we’re thinking about it. Basically, when we see queries that are a relatively simple, that you have to jump into the editor to build, we want to build a UI experience that lets you build that without writing the Flux script. And so yeah. So 100% working towards making leveraging specific graphs, specifically with the Data Explorer and the point-and-click interface, much easier. And that includes Gauge. So our position is, we want to improve the product and we want to use the feedback from the community to do that, so.
Chris Churilo: 00:48:58.344 Nice. And then John asks and answers his own question, but I thought I’d read it out loud. “Where is the link to the community site for templates?” So you can see, on the slide here, there’s the GitHub repo. So influxdata/community-templates is where the repo is. So thanks for asking that, John. And I guess this could be the last question. I’ll double-check. Shubhankar asked: “How do I add more users to my dashboard?”
Russ Savage: 00:49:24.385 Yeah, awesome question. So we’re in the process of rolling out, very soon, multi-user support in the cloud. And so you’ll be able to add additional users that way. And that’s coming soon. In your OSS instance, you can add read-only users via the command line. So yeah.
Chris Churilo: 00:49:48.725 Excellent. Well, thank you both. And, hopefully, everybody who’s on this webinar today can take a look at what we’ve got at the repo, get started. As you can see, you can start just really basically with just something as simple as just using a single Telegraf plugin with your Jenkins instance, just build out a couple of little panels at your dashboard, a couple of little alerts, save it as a template. But then you can start to layer a lot of these things on top of each other because, as Russ mentioned earlier, the beauty of this thing is, with just a single command line, you can deploy a full monitoring solution for whatever it is that you and your team are really keen to get a better understanding of and make it a little more performant. So before I end, Phillip just squeaked in a last question. And so I will just get to this. Philip asked, “Is there a way to access the InfluxDB dashboard from a local instance? Do I have to set up a sandbox or is it included in a Docker image?”
Russ Savage: 00:50:50.062 Yeah. There’s Docker instructions on how to set up Influx for sure. So it should be in our getting started docs. So this Getting Started V2 - there should be an option for installing via Docker.
Chris Churilo: 00:51:04.705 Excellent. So thanks everyone for joining us. We’ll do a quick edit of the video and then post it. But the quickest way to get started, as Russ mentioned in the beginning, is just start with the cloud instance, start building a couple of really simple dashboards and then go to the command line and save it as a template. And hopefully, you’ll see how powerful this new capability is. I definitely want to thank Russ and Ray today for our webinar. And if anybody has any other questions, even after this time together, please feel free to just shoot me an email. And I will be more than happy to forward those questions to our speakers. Thanks again, guys. And we hope everyone builds some really amazing templates.
Russ Savage: 00:51:50.847 Thank you, Chris. And thanks everybody for joining. Have a great day.
Ray Farias: 00:51:54.066 Thank you.
Chris Churilo: 00:51:54.278 Bye-bye.
Director of Product Management, InfluxData
Russ Savage is the Director, Product Management at InfluxData where he focuses on enabling DevOps for teams using InfluxDB and the TICK Stack. He has a background in computer engineering and has been focused on various aspects of enterprise data for the past 10 years. Russ has previously worked at Cask Data, Elastic, Box, and Amazon. When Russ is not working at InfluxData, he can be seen speeding down the slopes on a pair of skis.
Software Developer, Sudokrew
Ray Farias is a developer at Sudokrew located in Honolulu, HI. He has over 6 years of experience with software development. Ray shares his passion for programming by teaching introductional courses in his spare time to those looking to transition or understand how software/technology can improve their lives. He is also interested in sound synthesis thru software and can be found playing live music often in Honolulu's local scene.