<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>InfluxData Blog - Ignacio Van Droogenbroeck</title>
    <description>Posts by Ignacio Van Droogenbroeck on the InfluxData Blog</description>
    <link>https://www.influxdata.com/blog/author/ignacio-van-droogenbroeck/</link>
    <language>en-us</language>
    <lastBuildDate>Thu, 08 Dec 2022 07:00:00 +0000</lastBuildDate>
    <pubDate>Thu, 08 Dec 2022 07:00:00 +0000</pubDate>
    <ttl>1800</ttl>
    <item>
      <title>How to Monitor Kubernetes K3s Using Telegraf and InfluxDB Cloud</title>
      <description>&lt;p&gt;&lt;em&gt;This article was originally published in &lt;a href="https://thenewstack.io/how-to-monitor-kubernetes-k3s-using-telegraf-and-influxdb-cloud/"&gt;The New Stack&lt;/a&gt; and is reposted here with permission.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Helm chart can simplify our lives and enable us to see what is happening with our K3s cluster using an external system.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lightweight Kubernetes, known as  &lt;a href="https://github.com/k3s-io/k3s"&gt;K3s&lt;/a&gt;, is an installation of Kubernetes half the size in terms of memory footprint.&lt;/p&gt;

&lt;p&gt;Do you need to monitor your nodes running K3s to know the status of your cluster? Do you also need to know how your pods perform, the resources they consume, as well as network traffic? In this article, I will show you how to monitor K3s with Telegraf and InfluxDB Cloud.&lt;/p&gt;

&lt;p&gt;I run a blog and a few other resources on  &lt;a href="https://www.influxdata.com/solutions/kubernetes-monitoring-solution/"&gt;Kubernetes&lt;/a&gt;. Specifically, these run in a cluster of three nodes in DigitalOcean that run K3s, and I use Telegraf and InfluxDB to monitor everything.&lt;/p&gt;

&lt;p&gt;I’m going to demonstrate how to monitor the cluster to make sure that everything is running as expected and how to identify something if it is not.&lt;/p&gt;

&lt;p&gt;To monitor the cluster I use two components:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.influxdata.com/products/influxdb-cloud/"&gt;InfluxDB Cloud&lt;/a&gt;: It’s ideal to do monitoring from the outside because if we do it from the inside and the node goes down, then so does the monitoring solution, and that doesn’t make any sense. You can get a free InfluxDB account here:  &lt;a href="https://cloud2.influxdata.com/signup"&gt;https://cloud2.influxdata.com/signup/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we need to install a Helm chart from  &lt;a href="https://www.influxdata.com/time-series-platform/telegraf/"&gt;Telegraf&lt;/a&gt;, specifically  &lt;a href="https://artifacthub.io/packages/helm/telegraf-ds-k3s/telegraf-ds-k3s"&gt;this one&lt;/a&gt;, because it does not have Docker engine support, which if you run K3s, doesn’t need it.&lt;/p&gt;

&lt;p&gt;Let’s do it…&lt;/p&gt;

&lt;h1 id="configuring-influxdb-cloud"&gt;Configuring InfluxDB Cloud&lt;/h1&gt;

&lt;p&gt;The first thing we must do is create an account in InfluxDB Cloud. Next, we go to the Data section, click on  &lt;strong&gt;Buckets&lt;/strong&gt;, and then on  &lt;strong&gt;Create Bucket&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/1I4Mf9aBEhRT88XBGtUUjy/754692a541cc6f3a4f1e92ae3ccb6b36/Configuring_InfluxDB_Cloud-Load_Data.png" alt="Configuring InfluxDB Cloud-Load Data" /&gt;&lt;/p&gt;

&lt;p&gt;Name the bucket and click on  &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/3cEPB4iQ3SB4anuQvKM39i/710f2da5695b276bc48452fdaf78a588/Name_the_bucket_and_click_on_Create.png" alt="Name the bucket and click on Create" /&gt;&lt;/p&gt;

&lt;p&gt;This is what our list of buckets should look like. After successfully creating the bucket, we create an access token to be able to write data to that bucket. To do that we go to the  &lt;strong&gt;Tokens&lt;/strong&gt;  tab.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/3FCDT6W7NpUsb3swCS9uIe/646635636f7e935308923f8f2175dd54/create_an_access_token.png" alt="create an access token" /&gt;&lt;/p&gt;

&lt;p&gt;In this section, we click on  &lt;strong&gt;Generate Token&lt;/strong&gt;  and choose the  &lt;strong&gt;Read/Write Token&lt;/strong&gt;  option.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/6CGwjqhhb3eC4lSsEuvZgR/9bb960b688abef980771815689d54f2e/Generate_Token_and_choose_the_Read-Write_Token_option.png" alt="Generate Token and choose the Read-Write Token option" /&gt;&lt;/p&gt;

&lt;p&gt;We specify a name, choose the bucket we want to associate with this token, and click on  &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/4dgJOu3QmqF67bN2KUtq5D/78ff95bf8faf76017617658314c0b241/choose_the_bucket_to_associate_with_this_token_-save.png" alt="choose the bucket to associate with this token -save" /&gt;&lt;/p&gt;

&lt;p&gt;Once this is done, the new token appears in the token list.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/2RO5RevL2RBFPqMuwFoM9n/fce0c04c47b35fab5db2b616bfbe97a7/new_token_appears_in_the_token_list.png" alt="new token appears in the token list" /&gt;&lt;/p&gt;

&lt;p&gt;To finish this part, we are going to need our Org ID and the URL to point our Telegraf to.&lt;/p&gt;

&lt;p&gt;The Org ID is the email you used to sign up for InfluxDB Cloud. I get the URL from the address bar. In my case, when I set up my InfluxDB Cloud account, I chose the western United States. So my URL looks like this:&lt;/p&gt;

&lt;p&gt;https://us-west-2-1.aws.cloud2.influxdata.com&lt;/p&gt;

&lt;p&gt;Now that we configured InfluxDB Cloud, we need to configure the nodes.&lt;/p&gt;

&lt;p&gt;As I mentioned above, we are going to use a Helm Chart. I modified this Helm Chart to adapt to K3s, because by default it tries to monitor Docker, which isn’t used in this Kubernetes distribution.&lt;/p&gt;

&lt;p&gt;If you don’t have Helm installed, you can install it by running this command:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-bash"&gt;$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once installed, download the values.yaml file &lt;a href="https://github.com/xe-nvdk/awesome-helm-charts/blob/main/telegraf-ds-k3s/values.yaml"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also grab the raw file and download it directly to the master node with a &lt;code class="language-markup"&gt;wget&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-yaml"&gt;$ wget https://raw.githubusercontent.com/xe-nvdk/awesome-helm-charts/main/telegraf-ds-k3s/values.yaml&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now, we have to modify this file a bit. We need to open it and modify the Output section. By default the file looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;## Exposed telegraf configuration
## ref: https://docs.influxdata.com/telegraf/v1.13/administration/configuration/
config:
  # global_tags:
  #   cluster: "mycluster"
  agent:
    interval: "10s"
    round_interval: true
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    collection_jitter: "0s"
    flush_interval: "10s"
    flush_jitter: "0s"
    precision: ""
    debug: false
    quiet: false
    logfile: ""
    hostname: "$HOSTNAME"
    omit_hostname: false
  outputs:
    - influxdb:
        urls:
          - "http://influxdb.monitoring.svc:8086"
        database: "telegraf"
        retention_policy: ""
        timeout: "5s"
        username: ""
        password: ""
        user_agent: "telegraf"
        insecure_skip_verify: false
  monitor_self: false&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But since we are going to use InfluxDB Cloud, we must make some adjustments. The modified version will look something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;## Exposed telegraf configuration
## ref: https://docs.influxdata.com/telegraf/v1.13/administration/configuration/
config:
  # global_tags:
  #   cluster: "mycluster"
  agent:
    interval: "1m"
    round_interval: true
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    collection_jitter: "0s"
    flush_interval: "10s"
    flush_jitter: "0s"
    precision: ""
    debug: false
    quiet: false
    logfile: ""
    hostname: "$HOSTNAME"
    omit_hostname: false
  outputs:
    - influxdb_v2:
        urls:
          - "https://us-west-2-1.aws.cloud2.influxdata.com"
        bucket: "kubernetes"
        organization: "miemail@midominio.com"
        token: "WIX6Fy-v10zUIag_dslfjasfljadsflasdfjasdlñjfasdlkñfj=="
        timeout: "5s"
        insecure_skip_verify: false
  monitor_self: false&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If we need to adjust other values, like the collection interval, you can do it by changing the interval value. For example, I don’t need the data every 10 seconds, so I changed it to 1 minute.&lt;/p&gt;

&lt;p&gt;Now we come to the moment of truth! We are going to install the Helm Chart and see if everything works as expected. Depending on your K3s configuration, you might need to pass the cluster configuration as a &lt;code class="language-markup"&gt;KUBECONFIG&lt;/code&gt; environment variable.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-yaml"&gt;$  export KUBECONFIG=/etc/rancher/k3s/k3s.yaml&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once that’s done, we’re going to add the &lt;a href="https://github.com/influxdata/helm-charts/tree/gh-pages"&gt;Awesome-Helm-Charts&lt;/a&gt; repo.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-yaml"&gt;$ helm repo add awesome-helm-charts https://xe-nvdk.github.io/awesome-helm-charts/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then we update the content of the repos that we configured.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-yaml"&gt;$ helm repo update&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Finally, we’ll install the repo, passing it the configuration we just modified in the &lt;code class="language-markup"&gt;values.yaml&lt;/code&gt; file&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-yaml"&gt;$ helm upgrade --install telegraf-ds-k3s -f values.yaml awesome-helm-charts/telegraf-ds-k3s&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The terminal should return something similar to this:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;Release "telegraf-ds-k3s" does not exist. Installing it now.
NAME: telegraf-ds-k3s
LAST DEPLOYED: Fri Jun 25 22:47:22 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
To open a shell session in the container running Telegraf run the following:

- kubectl exec -i -t --namespace default $(kubectl get pods --namespace default -l app.kubernetes.io/name=telegraf-ds -o jsonpath='{.items[0].metadata.name}') /bin/sh

To tail the logs for a Telegraf pod in the Daemonset run the following:

- kubectl logs -f --namespace default $(kubectl get pods --namespace default -l app.kubernetes.io/name=telegraf-ds -o jsonpath='{ .items[0].metadata.name }')

To list the running Telegraf instances run the following:

- kubectl get pods --namespace default -l app.kubernetes.io/name=telegraf-ds -w&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This output shows that the Helm chart deployed successfully. Keep in mind that this is a DaemonSet, which automatically installs the Helm Chart on each of the nodes in this cluster.&lt;/p&gt;

&lt;p&gt;To check that everything is running properly use the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;$ kubectl get pods&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;We see that our pod is alive and kicking.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;NAME                    READY   STATUS    RESTARTS   AGE
telegraf-ds-k3s-w8qhc   1/1     Running   0          2m29s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you want to make sure that the log is working as expected, then run:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;$ kubectl logs -f telegraf-ds-k3s-w8qhc&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The terminal should output something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-markup"&gt;2021-06-26T02:55:22Z I! Starting Telegraf 1.18.3
2021-06-26T02:55:22Z I! Using config file: /etc/telegraf/telegraf.conf
2021-06-26T02:55:22Z I! Loaded inputs: cpu disk diskio kernel kubernetes mem net processes swap system
2021-06-26T02:55:22Z I! Loaded aggregators:
2021-06-26T02:55:22Z I! Loaded processors:
2021-06-26T02:55:22Z I! Loaded outputs: influxdb_v2
2021-06-26T02:55:22Z I! Tags enabled: host=k3s-master
2021-06-26T02:55:22Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"k3s-master", Flush Interval:10s&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Everything seems fine, but now comes the moment of truth. We go to our InfluxDB Cloud account, navigate to the &lt;strong&gt;Explore&lt;/strong&gt; section, and we should see some measurements and, of course, some data when selecting the bucket.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/64hpu6vGixbfycUyLv1BfU/ed063c260a2db132e3527d5b9a1de8eb/navigate_to_the_Explore_section.png" alt="navigate to the Explore section" /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, this process isn’t as complicated as it might seem. The Helm chart simplifies our lives and from now on we can see what is happening with our cluster using an external system.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Dec 2022 07:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/how-monitor-kubernetes-k3s-telegraf-influxdb-cloud/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/how-monitor-kubernetes-k3s-telegraf-influxdb-cloud/</guid>
      <category>Product</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>Three Ways to Keep Cardinality Under Control When Using Telegraf</title>
      <description>&lt;p&gt;This article will show how we kept &lt;a href="https://www.influxdata.com/blog/red-flags-of-high-cardinality-in-databases"&gt;cardinality under control&lt;/a&gt; with a few tweaks in the Telegraf configuration. If you’re not yet familiar with it, &lt;a href="https://www.influxdata.com/time-series-platform/telegraf/"&gt;Telegraf&lt;/a&gt; is the native and open-source plugin-driver metrics collection agent of &lt;a href="https://www.influxdata.com/products/influxdb/"&gt;InfluxDB&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you may know, cardinality is the combination of measurements, tags, sets, fields, and values in a time-series database, and having high cardinality can be a challenge. No worries, though — here are three ways (based on my previous SRE experience) to keep cardinality under control.&lt;/p&gt;

&lt;p&gt;One of these is selecting the interval collection based on our needs, the specific metrics we need, and how long we need them.&lt;/p&gt;

&lt;p&gt;Let’s take a closer look at these three tweaks and how they helped.&lt;/p&gt;
&lt;h2&gt;Data collection interval&lt;/h2&gt;
&lt;p&gt;When we needed to re-architect the monitoring system, we asked ourselves: What’s our SLA, and for what duration do we want to store the data? The default interval of Telegraf is ok, but was it too short for us? Do we need data from more than 100 servers hitting every 10 seconds? We didn’t, and based on our policies, receiving data every 60 seconds was enough. So that was one of the first things we tweaked.&lt;/p&gt;

&lt;p&gt;Here’s our Telegraf configuration for this tweak.&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-ini"&gt;[agent]
  interval = "60s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "60s"
  flush_jitter = "0s"
  precision = ""

  debug = false
  quiet = false
  logfile = ""

  hostname = ""
  omit_hostname = false&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Adjusting the interval is an excellent way to keep cardinality under control but isn’t the only one. Let’s see the team’s (and my own) favorite way, and that is…&lt;/p&gt;
&lt;h2&gt;Filtering metrics&lt;/h2&gt;
&lt;p&gt;Filtering metrics can be another excellent way to keep cardinality under control; sometimes, depending on our needs and scenario, we don’t need all the metrics that an input plugin can offer. Take a look at all these fields collected when we have the &lt;a href="https://www.influxdata.com/integration/mem/"&gt;Mem Telegraf Input Plugin&lt;/a&gt; running.&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-ini"&gt;active (integer, Darwin, FreeBSD, Linux, OpenBSD)
available (integer)
available_percent (float)
buffered (integer, FreeBSD, Linux)
cached (integer, FreeBSD, Linux, OpenBSD)
commit_limit (integer, Linux)
committed_as (integer, Linux)
dirty (integer, Linux)
free (integer, Darwin, FreeBSD, Linux, OpenBSD)
high_free (integer, Linux)
high_total (integer, Linux)
huge_pages_free (integer, Linux)
huge_page_size (integer, Linux)
huge_pages_total (integer, Linux)
inactive (integer, Darwin, FreeBSD, Linux, OpenBSD)
laundry (integer, FreeBSD)
low_free (integer, Linux)
low_total (integer, Linux)
mapped (integer, Linux)
page_tables (integer, Linux)
shared (integer, Linux)
slab (integer, Linux)
sreclaimable (integer, Linux)
sunreclaim (integer, Linux)
swap_cached (integer, Linux)
swap_free (integer, Linux)
swap_total (integer, Linux)
total (integer)
used (integer)
used_percent (float)
vmalloc_chunk (integer, Linux)
vmalloc_total (integer, Linux)
vmalloc_used (integer, Linux)
wired (integer, Darwin, FreeBSD, OpenBSD)
write_back (integer, Linux)
write_back_tmp (integer, Linux)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It’s a lot, right? Ask yourself: do you need all these values? We didn’t because the data that was important to us was &lt;em&gt;used_percent&lt;/em&gt; and &lt;em&gt;available&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;For the other input plugins, we asked ourselves the same question. So we filtered and collected only the data that mattered to us, and we actively monitored. Our configuration looks like this:&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-ini"&gt;[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
  fieldpass = ["usage_guest", "usage_system", "usage_idle"]

[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "overlay", "aufs", "squashfs"]
  fieldpass = ["used, "free"]

[[inputs.diskio]]
  fieldpass = ["read_bytes", "write_bytes", "read_time", "read_write", "read", "writes"]

[[inputs.mem]]
  fieldpass = ["used_percent", "available"]

[[inputs.net]]
  fieldpass = ["bytes_sent", "bytes_recv", "err_in", "err_out", "drop_in", "drop_out"]

[[inputs.processes]]
  fieldpass = ["running", "zombie", "sleeping", "total"]

[[inputs.swap]]
  fieldpass = ["total", "used", "free"]

[[inputs.system]]
  fieldpass = ["load1", "load15", "load5", "uptime"]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;This configuration reduces the fields of collection from 109 to 30. That’s a reduction of more than 72% of the data collected.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The other policy that we applied and helped control cardinality was…&lt;/p&gt;
&lt;h2&gt;Retention policy and downsampling&lt;/h2&gt;
&lt;p&gt;Customizing the &lt;a href="https://docs.influxdata.com/influxdb/v2.0/reference/api/influxdb-1x/dbrp/#default-retention-policies"&gt;database retention policy in InfluxDB&lt;/a&gt; is an excellent way to control cardinality. Ask yourself (one more time) if you need to have three years of data. Do you see yourself querying disk usage of a server that ran three years ago? Even one year ago?&lt;/p&gt;

&lt;p&gt;In our case, we set the life of the data in accordance with PCI compliance and our internal policies. We need to retain the information about our systems for one year. For immediate analysis, we need to retain the data for the last 14 days. So we architected our monitoring system having, in our main buckets, the data for the previous 14 days, and every same quantity of days, we dump the older data into another bucket with a retention policy of one year.&lt;/p&gt;
&lt;h2&gt;To conclude...&lt;/h2&gt;
&lt;p&gt;As you can see, with a few tweaks in the Telegraf configuration, such as interval and the quantity of data that we collect, plus the retention and downsampling data available at the time, we were able to keep cardinality under control. What do you think of these tweaks, and what other tricks do you have to keep cardinality under control? Let us know through the comments below.&lt;/p&gt;
</description>
      <pubDate>Thu, 20 May 2021 04:00:01 -0700</pubDate>
      <link>https://www.influxdata.com/blog/three-ways-to-keep-cardinality-under-control-when-using-telegraf/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/three-ways-to-keep-cardinality-under-control-when-using-telegraf/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>How to Control Crowds with Python, OpenCV and InfluxDB</title>
      <description>&lt;p&gt;As I mentioned &lt;a href="https://cduser.com/como-crear-archivos-docker-compose-yml-facil-ezcompose/"&gt;a while ago&lt;/a&gt;, I am learning to develop in Python; it seems that it is a super easy language to interpret, and so far, I have not found a “no” when trying to do things with it. I am delighted, and I keep learning.&lt;/p&gt;

&lt;p&gt;In this learning process, I started to play with &lt;a href="http://opencv.org/"&gt;OpenCV&lt;/a&gt; (Open Source Computer Vision Library) to detect faces. OpenCV is an open-source, BSD-licensed library that includes several hundreds of computer vision algorithms. It did not take me long to understand how everything worked, and I began to think about InfluxDB time series use cases and how to integrate other technologies.&lt;/p&gt;

&lt;p&gt;From that search came the idea of integrating OpenCV with &lt;a href="https://www.influxdata.com/the-best-way-to-store-collect-analyze-time-series-data/"&gt;InfluxDB&lt;/a&gt; to count the times it detects a face. Time series and biometrics are a perfect fit, I think, opening up numerous applications such as, but not limited to, the following:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Register the number of people coming through a specific entry point in a store at a particular moment of the day&lt;/li&gt;
 	&lt;li&gt;Register the number of cars or other vehicles that pass for an avenue.&lt;/li&gt;
 	&lt;li&gt;Count how many people stop and watch a specific type of product to understand if it's attractive to them&lt;/li&gt;
 	&lt;li&gt;Measure customer conversion in retail and hospitality establishments, such as comparing restaurant guests walking in vs. plates sold&lt;/li&gt;
 	&lt;li&gt;Overwatch crowds within a defined space and time (resources allocation, traffic light management, infrastructure improvements, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The last is very important considering the global context we live in. Controlling crowds to ensure public safety in a pandemic era has been challenging for law enforcement agencies worldwide.&lt;/p&gt;
&lt;h2&gt;Let's see some of the code...&lt;/h2&gt;
&lt;p&gt;The code of this project can be found in &lt;a href="https://github.com/xe-nvdk/crowd-counter"&gt;this GitHub repository&lt;/a&gt;. The relevant files are:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;live.py&lt;/li&gt;
 	&lt;li&gt;influxdb_config.ini&lt;/li&gt;
 	&lt;li&gt;haarcascade_frontalface_default.xml&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The file live.py looks as shown below. The only thing to modify, if desired, is the name of the bucket to match the bucket that we created in &lt;a href="https://www.influxdata.com/products/influxdb/"&gt;InfluxDB&lt;/a&gt;.&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-python"&gt;# This script will detect faces via your webcam and push the data to an InfluxDB instance.
# By Ignacio Van Droogenbroeck @hectorivand
 
import cv2
 
from datetime import datetime
 
from influxdb_client import Point, InfluxDBClient
from influxdb_client.client.write_api import SYNCHRONOUS
 
# Specify the InfluxDB bucket
 
bucket = "crowd-counter"
 
# In this file, you must set the parameters to connect to InfluxDB.
 
client = InfluxDBClient.from_config_file('influxdb_config.ini')
 
write_api = client.write_api(write_options=SYNCHRONOUS)
query_api = client.query_api()
 
cap = cv2.VideoCapture(0)
 
# Create the haar cascade
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
 
while(True):
	# Capture frame-by-frame
	ret, frame = cap.read()
 
	# Our operations on the frame come here
	gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
 
	# Detect faces in the image
	faces = faceCascade.detectMultiScale(
		gray,
		scaleFactor=1.2,
		minNeighbors=5,
		minSize=(30, 100)
	)
 
	# Write the quantity of faces detected on InfluxDB
 
	p = Point("public-count").tag("cameras", "entry").field("people", '{0}'.format(len(faces)))
	write_api.write(bucket=bucket, record=p)
 
	# Draw a rectangle around the faces
	for (x, y, w, h) in faces:
		cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
 
	# Display the resulting frame
	cv2.imshow('frame', frame)
	if cv2.waitKey(1) &amp;amp; 0xFF == ord('q'):
		break
 
# When everything is done, release the capture
cap.release()
cv2.destroyAllWindows()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The other file to modify is the &lt;code class="language-markup"&gt;influxdb_config.ini&lt;/code&gt;. This file has the data to connect to InfluxDB. As you can see, you need to define the values to connect to InfluxDB.&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-ini"&gt;[influx2]
url=$INFLUX_URL
org=$INFLUX_ORG
token=$INFLUX_TOKEN
timeout=6000
verify_ssl=True&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you don’t have an instance of InfluxDB OSS running, I recommend you create an &lt;a href="https://www.influxdata.com/products/influxdb-cloud/"&gt;InfluxDB Cloud&lt;/a&gt; account (InfluxDB Cloud is a managed, elastic, serverless edition of InfluxDB). The free tier is more than enough to perform some tests. If you’ve decided to use this solution in a production environment, you can keep your Cloud account.&lt;/p&gt;

&lt;p&gt;The last important file is the &lt;a href="https://github.com/xe-nvdk/crowd-counter/blob/main/haarcascade_frontalface_default.xml"&gt;haarcascade_frontalface_default.xml&lt;/a&gt;. This file provides the models to detect faces. In the &lt;a href="https://docs.opencv.org/3.4/db/d28/tutorial_cascade_classifier.html"&gt;OpenCV: Cascade Classifier&lt;/a&gt; tutorial, I recommend reading about haarcascade and why it is an excellent option to detect objects without the need to train a TensorFlow model.&lt;/p&gt;

&lt;p&gt;Now we have everything set up, so let’s run the code.&lt;/p&gt;
&lt;h2&gt;Let's count some faces...&lt;/h2&gt;
&lt;p&gt;Once this script is running, if you run the live.py script, it will activate your webcam to start counting faces and send that data to InfluxDB.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-255437" src="/images/legacy-uploads/facial-detection-python-opencv-influxdb.png" alt="facial detection using python opencv influxdb" width="1420" height="584" /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, this face detection approach is not so complicated. It can be used to control traffic flow on a highway or avenue.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-255438" src="/images/legacy-uploads/vehicle-detection-influxdb-python.png" alt="vehicle detection using influxdb and python" width="1367" height="578" /&gt;&lt;/p&gt;

&lt;p&gt;Well, you might be thinking — all is beautiful, you have a pretty face, the cars look good too, but show me how to control crowds using this technology. Fair enough! Let me reply to your comment with this screenshot.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-255439" src="/images/legacy-uploads/crowd-detection-opencv-influxdb-python.png" alt="crowd detection solution opencv, influxdb, python" width="1460" height="617" /&gt;&lt;/p&gt;

&lt;p&gt;In this case, the script detected 110 faces and sent that data to InfluxDB. Imagine this example running through several devices in parks, restaurants or fairs.&lt;/p&gt;

&lt;p&gt;As you may notice, I used a video because, well, I don’t have a crowd in my home! But the output will be the same; the only difference in this case is the input of the data (the video vs. a live feed).&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This software solution isn’t perfect; it is part of my learning path. If you find some issues, I encourage you to fork and propose improvements in the &lt;a href="https://github.com/xe-nvdk/crowd-counter"&gt;GitHub Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope this article has just given you a whole new use case for deploying InfluxDB.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
</description>
      <pubDate>Fri, 09 Apr 2021 04:00:35 -0700</pubDate>
      <link>https://www.influxdata.com/blog/how-to-control-crowds-python-opencv-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/how-to-control-crowds-python-opencv-influxdb/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>Monitoring DigitalOcean Billing with InfluxDB</title>
      <description>&lt;p&gt;I’ve always had a good experience using DigitalOcean, a cloud infrastructure provider which offers developers cloud services that help deploy and scale applications that run simultaneously on multiple computers. I’ve used DigitalOcean a lot for my personal projects — for example, to host my personal blog, its stats, and a NextCloud instance, all running in Kubernetes.&lt;/p&gt;

&lt;p&gt;Monitoring your server is always a good idea. When you have workloads in the cloud, monitoring turns critical because while you’re using a Cloud infrastructure, you remain responsible for the health of the servers/services you host. The Cloud provider mostly monitors their own infrastructure, but you’re on your own to monitor the software you run. If your application stops responding, this becomes a problem you have to solve.&lt;/p&gt;
&lt;h2&gt;Monitoring simplified with InfluxDB Templates&lt;/h2&gt;
&lt;p&gt;An &lt;a href="https://www.influxdata.com/blog/influxdb-templates-ui/"&gt;InfluxDB Template&lt;/a&gt;, the &lt;a href="https://www.influxdata.com/influxdb-templates/digital-ocean-billing-monitoring/"&gt;DigitalOcean Billing Monitoring Template&lt;/a&gt; lets you quickly define your entire monitoring configuration (data sources, dashboards, and alerts) in one easily-shared, open-source text file that can be imported into InfluxDB with a single command.&lt;/p&gt;

&lt;p&gt;Template import is built straight into the InfluxDB Cloud UI — no software to download or command line syntax to memorize. All you have to do is copy a link to the Template you want, paste it into the page in your InfluxDB Cloud UI, and you’re done.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-253411" src="/images/legacy-uploads/DigitalOcean-Billing-Dashboard.jpg" alt="DigitalOcean Billing dashboard" width="1200" height="263" /&gt;&lt;/p&gt;
&lt;h2&gt;Controlling DigitalOcean account balance&lt;/h2&gt;
&lt;p&gt;The pricing of DigitalOcean is straightforward, with monthly billing cycles that depend on the price plan tier you’re on. I’m always charging my DigitalOcean account in advance, so the template allows me to control my balance — to understand how much my resources cost per day and how much I owe — without entering the DigitalOcean dashboard.&lt;/p&gt;

&lt;p&gt;I use this data right next to the monitoring of my Kubernetes cluster running in DigitalOcean. I created this dashboard using the DigitalOcean API, and simply to have system monitoring and billing in only one place.&lt;/p&gt;
&lt;h2&gt;Using the DigitalOcean Billing Monitoring Template&lt;/h2&gt;
&lt;p&gt;You can use this InfluxDB Template to actively monitor your consumption of resources to manage your DigitalOcean Account spend. The template’s dashboard monitors current balance, consumption to date, and balance to date.&lt;/p&gt;

&lt;p&gt;To gather monitoring data for the template, I use the Exec Telegraf Input Plugin (which parses supported &lt;a href="https://docs.influxdata.com/telegraf/v1.17/data_formats/input/"&gt;Telegraf input data formats&lt;/a&gt;) and then use the &lt;a href="https://docs.influxdata.com/telegraf/v1.17/plugins/#influxdb_v2"&gt;InfluxDB Output Plugin&lt;/a&gt; to carry that JSON data to InfluxDB.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloud2.influxdata.com/signup"&gt;To install this template and get a headstart on monitoring, sign up for your free InfluxDB Cloud account&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 24 Feb 2021 04:00:54 -0700</pubDate>
      <link>https://www.influxdata.com/blog/monitoring-digitalocean-billing-with-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/monitoring-digitalocean-billing-with-influxdb/</guid>
      <category>Use Cases</category>
      <category>Product</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>HAProxy Monitoring (the InfluxDB Way)</title>
      <description>&lt;p&gt;My personal experience with HAProxy dates back to my work with a previous company, where we used HAProxy to do load balancing between pairs of servers with specific roles. Those servers are the core of the major payment gateway in Uruguay, where thousands of users use them every day to pay their bills, recharge their mobile phones, pay parking fees, and even play lottery numbers.&lt;/p&gt;

&lt;p&gt;Before I created &lt;a href="https://www.influxdata.com/influxdb-templates/haproxy/"&gt;The HAProxy Monitoring Template&lt;/a&gt; — an &lt;a href="https://www.influxdata.com/blog/influxdb-templates-ui/"&gt;InfluxDB Template&lt;/a&gt; — we were blind in terms of understanding how HAProxy was performing or even if our users viewed any error when they tried to do some transactions.&lt;/p&gt;
&lt;h2&gt;What happens if you don't monitor HAProxy&lt;/h2&gt;
&lt;p&gt;If you don’t monitor HAProxy, your users are the alert method to understand if something isn’t working as expected. Before starting to monitor using InfluxDB, we had a hard time responding when developers or customers told us: “The application is working slow.” We had to review each part of the architecture and ask ourselves: Is the application, bandwidth, or backend to blame — what’s going on? We had to make a diagnosis in this almost blind scenario. This takes time, and time is money.&lt;/p&gt;

&lt;p&gt;When you need to analyze the server’s and your application’s performance, you can use InfluxDB. We used the built-in tool to get metrics and bring them to InfluxDB, create a dashboard and alerts to monitor the service’s performance, and if, for example, our users and developers received an HTTP code 200 or something else — we’d know. They didn’t need to run in circles screaming “Fire, fire, fire!” when something didn’t work as expected.&lt;/p&gt;

&lt;p&gt;The above scenario is what led me to create the &lt;a href="https://www.influxdata.com/influxdb-templates/haproxy/"&gt;The HAProxy Monitoring Template&lt;/a&gt; profiled below. But first, a quick refresher on HAProxy and InfluxDB Templates.&lt;/p&gt;
&lt;h3&gt;Overview of HAProxy load balancing&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.haproxy.org/#desc"&gt;HAProxy&lt;/a&gt; is an open-source TCP/HTTP load balancer software and proxy server for TCP and HTTP-based applications. It can run on Linux, Solaris, and FreeBSD to improve the performance and reliability of the server environment by distributing workloads across multiple servers. HAProxy is used by some of the world’s highest-traffic websites. HAProxy load balancing algorithms determine which server, in a backend, will be selected when load balancing.&lt;/p&gt;
&lt;h3&gt;Overview of InfluxDB Templates&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.influxdata.com/blog/influxdb-templates-ui/"&gt;InfluxDB Templates&lt;/a&gt; let you quickly define your entire monitoring configuration (data sources, dashboards, and alerts) for any technology in one easily-shared, open-source text file that can be imported into InfluxDB with a single command. Most InfluxDB Templates are community-contributed, so if you’re interested in &lt;a href="https://github.com/influxdata/community-templates/blob/master/docs/submit_a_template.md"&gt;submitting&lt;/a&gt; your own InfluxDB Template, learn &lt;a href="https://www.influxdata.com/blog/how-to-build-an-influxdb-template/"&gt;how to build one&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Collecting HAProxy metrics with InfluxDB&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://github.com/influxdata/telegraf/blob/release-1.14/plugins/inputs/haproxy/README.md"&gt;HAProxy Monitoring Template&lt;/a&gt; has a preconfigured dashboard.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-248008" src="/images/legacy-uploads/HAProxy-Monitoring-Dashboard.png" alt="HAProxy Monitoring Dashboard" width="1821" height="1055" /&gt;&lt;/p&gt;

&lt;p&gt;The template uses the &lt;a href="https://www.influxdata.com/integration/haproxy-monitoring/"&gt;HAProxy Telegraf Plugin&lt;/a&gt; to collect metrics about HAProxy and store them in InfluxDB, which is then presented in the included dashboard:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Telegraf is InfluxDB's open-source, plugin-driven metrics collection agent.&lt;/li&gt;
 	&lt;li&gt;The &lt;a href="https://www.influxdata.com/integration/haproxy-monitoring/"&gt;Telegraf plugin&lt;/a&gt; gathers &lt;a href="https://cbonte.github.io/haproxy-dconv/1.9/intro.html#3.3.16"&gt;statistics&lt;/a&gt; using the &lt;a href="https://cbonte.github.io/haproxy-dconv/1.9/management.html#9"&gt;stats socket&lt;/a&gt; or &lt;a href="https://cbonte.github.io/haproxy-dconv/1.9/management.html#9"&gt;HTTP statistics page&lt;/a&gt; of a HAProxy server.&lt;/li&gt;
 	&lt;li&gt;The &lt;a href="https://www.influxdata.com/influxdb-templates/haproxy/"&gt;HAProxy Monitoring Template&lt;/a&gt; webpage lists the HAProxy metrics you can monitor using this dashboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Installing the template is easy:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Once your InfluxDB credentials have been properly configured in the CLI, you can install the HAProxy monitoring template using the Quick Install command.&lt;/li&gt;
 	&lt;li&gt;Once installed, the data for the dashboard will be populated by the included Telegraf configuration, which includes the relevant HAProxy metrics.&lt;/li&gt;
 	&lt;li&gt;General instructions on using InfluxDB Templates can be found in the &lt;a href="https://github.com/influxdata/community-templates/blob/master/docs/use_a_template.md"&gt;use a template&lt;/a&gt; document.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It’s worth noting that this template can be used with the &lt;a href="https://www.influxdata.com/influxdb-templates/linux-system-monitor/"&gt;Linux System Monitoring Template&lt;/a&gt;. To install the HAProxy Monitoring Template, &lt;a href="https://cloud2.influxdata.com/signup"&gt;sign up for your free InfluxDB Cloud account&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;A great way to get started with InfluxDB&lt;/h2&gt;
&lt;p&gt;Developers need to have visibility of how their applications are performing. It’s also important to store that data in a system that allows you to manipulate it, and InfluxDB can help. This is why InfluxDB Templates are a great way to get started with InfluxDB and time series storage.&lt;/p&gt;

&lt;p&gt;Are you developing an application or device that gets important data to your customers? Count on InfluxDB; it’s not only important to get the data. The value resides in what we can do with that data to improve customers’ business. For example, can your application/device measure the quantity of water used in the farm? You can store that data in InfluxDB. You, the customer, can understand if the water is being used efficiently. Do you have an IoT device that counts the number of people in front of a business within a period of time? InfluxDB also helps, and your customers can do promotions in a specific period of the day to get more customers.&lt;/p&gt;

&lt;p&gt;I can spend the entire day talking to you about how InfluxDB can help bring value to your IoT or monitoring solutions, and maybe I will do just that — in a future blog post!&lt;/p&gt;
</description>
      <pubDate>Tue, 02 Feb 2021 04:00:30 -0700</pubDate>
      <link>https://www.influxdata.com/blog/haproxy-monitoring-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/haproxy-monitoring-influxdb/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>Automating SSL Certificate Expiration Monitoring</title>
      <description>&lt;p&gt;In my previous work experience, monitoring certificate validation was critical to our team. These certificates were used to sign commercial transactions between the payment gateway (us) and other providers. That check was manual and depended on the calendar of one person. So, if that person forgets to notify the team about the upcoming expiration of one certificate and doesn’t start the procedure of getting the new one, well, the platform starts to fail. This is what led me to create the &lt;a href="https://w2.influxdata.com/influxdb-templates/x509-ssl-certificates/"&gt;x509 SSL Certificate Monitoring Template&lt;/a&gt;, an &lt;a href="https://w2.influxdata.com/products/influxdb-templates/"&gt;InfluxDB Template&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-253427" src="/images/legacy-uploads/certificate-Monitoring-Dashboard.jpg" alt="X.509 certificate Monitoring Dashboard" width="1200" height="630" /&gt;&lt;/p&gt;
&lt;h2&gt;What happens when an x509 SSL certificate expires?&lt;/h2&gt;
&lt;p&gt;X.509 certificates have an expiration date that can prevent your website and applications from working properly, and thereby presenting your users with an alarming warning that the site’s security certificate has expired.&lt;/p&gt;

&lt;p&gt;When a certificate expires, several things can happen. Your users will receive a message that your site is not secure. If yours is an e-commerce site, that can’t be good for business. Also, the certificates can be used to authenticate between systems and/or to sign commercial transactions.&lt;/p&gt;

&lt;p&gt;One expired certificate means financial loss and bad customer experience. So one can just imagine the negative snowball effect of having many customers encounter several expired certificates.&lt;/p&gt;
&lt;h2&gt;How the X.509 SSL Certificate Monitoring Template works&lt;/h2&gt;
&lt;p&gt;To avoid being faced with certificate expiration — and the business disruption and undermined credibility it can cause — it is a best practice to check the expiration dates on a regular basis. The X.509 SSL Certificate Monitoring Template does just that – monitors SSL certificate expiration.&lt;/p&gt;

&lt;p&gt;Like other &lt;a href="https://www.influxdata.com/blog/influxdb-templates-ui/"&gt;InfluxDB Templates&lt;/a&gt;, this template lets you quickly define your entire monitoring configuration (data sources, dashboards, and alerts) in one easily-shared, open-source text file that can be imported into InfluxDB with a single command.&lt;/p&gt;

&lt;p&gt;The template uses the &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/x509_cert"&gt;x509 Telegraf plugin&lt;/a&gt;, and can handle many certificates at a time. It can be used in a corporate environment (for enterprises that handle a large number of certificates) to monitor certificates from a URL or directly in the certificate store. &lt;a href="https://cloud2.influxdata.com/signup"&gt;To install this template, sign up for your free InfluxDB Cloud account&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Free to use and simple to set up for your use case&lt;/h2&gt;
&lt;p&gt;This template can be used for free with an InfluxDB account. That’s one of the main advantages of using this template, and it’s very simple to set up and understand — no need to configure or write a script.&lt;/p&gt;

&lt;p&gt;While alerting isn’t built into the template, it would be straightforward to set alerts using familiar technologies, given how well InfluxDB integrates with &lt;a href="https://www.influxdata.com/products/integrations/?_integrations_dropdown=incident-management"&gt;incident management systems&lt;/a&gt;, to get notifications before a certificate expires.&lt;/p&gt;
&lt;h2&gt;More security-related InfluxDB Templates&lt;/h2&gt;
&lt;p&gt;Other security-related InfluxDB Templates include:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://www.influxdata.com/influxdb-templates/fail2ban/"&gt;The Fail2ban Monitoring Template&lt;/a&gt;, which helps you to determine if there are more (or less) IP addresses that you might want to add to your block list.&lt;/li&gt;
 	&lt;li&gt;The &lt;a href="https://www.influxdata.com/influxdb-templates/endpoint-security/"&gt;Endpoint Security State Template&lt;/a&gt;, which can be used to monitor certificates and authentication of determined endpoints.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Want more security-themed premade dashboards? Most &lt;a href="https://www.influxdata.com/blog/category/tech/influxdb-templates/"&gt;InfluxDB Templates&lt;/a&gt; are community-contributed, so you could be the one to build the next template (and we’ll share it with the community in an &lt;a href="https://www.influxdata.com/blog/category/tech/influxdb-templates/"&gt;article like this one&lt;/a&gt;)! Here’s how to &lt;a href="https://www.influxdata.com/blog/how-to-build-an-influxdb-template/"&gt;build&lt;/a&gt; and &lt;a href="https://github.com/influxdata/community-templates/blob/master/docs/submit_a_template.md"&gt;submit&lt;/a&gt; your own InfluxDB Template.&lt;/p&gt;
</description>
      <pubDate>Tue, 19 Jan 2021 10:00:01 -0700</pubDate>
      <link>https://www.influxdata.com/blog/automating-ssl-certificate-expiration-monitoring/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/automating-ssl-certificate-expiration-monitoring/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>Why I Joined InfluxData - Ignacio Van Droogenbroeck</title>
      <description>&lt;p&gt;&lt;img class="alignnone size-full wp-image-246440 aligncenter" src="/images/legacy-uploads/Ignacio-Van-Droogenbroeck.jpg" alt="Ignacio Van Droogenbroeck" width="400" height="400" /&gt;&lt;/p&gt;

&lt;p&gt;A few things pop up in my head to quickly answer why I joined this company, and I want to share them with you.&lt;/p&gt;
&lt;h2&gt;People &amp;amp; values&lt;/h2&gt;
&lt;p&gt;“People” is the first thing that comes to mind when I ask myself why I joined InfluxData.&lt;/p&gt;

&lt;p&gt;In 2020, I started contributing to InfluxDB and had the opportunity to meet great persons with whom I had a cool work synergy and relationship throughout the year. That’s one of the reasons that I joined this company.&lt;/p&gt;

&lt;p&gt;But, not only that, the values and that sentence in specific that I found on the careers page was very inspirational for me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Join a team that believes in a healthy balance of work and home life — one that believes we succeed together.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They got me. I’m a team player, and “succeed together” is a powerful statement for me.&lt;/p&gt;
&lt;h2&gt;Technology&lt;/h2&gt;
&lt;p&gt;I started to work directly with &lt;a href="https://www.influxdata.com/products/influxdb/"&gt;InfluxDB v2.0&lt;/a&gt;, and I found it very easy to understand, deploy and play with. I saw a tool not only to monitor systems but also to understand a lot of other types of data that helps companies and users make better decisions.&lt;/p&gt;

&lt;p&gt;InfluxDB is the technology that helps you to understand the following statement: “If you can’t measure it, you can’t improve it.”&lt;/p&gt;
&lt;h2&gt;Open source &amp;amp; community&lt;/h2&gt;
&lt;p&gt;One of my dreams was to work in an &lt;a href="https://www.influxdata.com/"&gt;Open Source company&lt;/a&gt;, and now, I’m living that dream.&lt;/p&gt;

&lt;p&gt;It wasn’t only for me and my dream. I also saw how important the &lt;a href="https://community.influxdata.com/" target="_blank" rel="noopener"&gt;community&lt;/a&gt; is (that helps shape InfluxDB) to the company. InfluxData recognizes the community’s hard work contributing to code, content, and support in the &lt;a href="https://influxdata.com/slack"&gt;Community Slack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As part of this community, even before I joined InfluxData, I contributed to developing InfluxDB Templates to accelerate the adoption of v2.x. One of the most popular here is the &lt;a href="https://www.influxdata.com/blog/tracking-csgo-stats-with-influxdb/"&gt;CS:GO&lt;/a&gt; template, but I also created a template to track &lt;a href="https://www.influxdata.com/blog/tracking-covid-19-data-in-south-america-using-telegraf-and-influxdb/"&gt;COVID19 in South America&lt;/a&gt; and a &lt;a href="https://github.com/influxdata/community-templates"&gt;few more to do system monitoring.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Due to these contributions, I have been invited to be part of the &lt;a href="https://www.influxdata.com/community-showcase/influxaces/"&gt;InfluxAces program&lt;/a&gt;. This program was created to recognize contributors to InfluxDB with code, content and knowledge sharing with the community.&lt;/p&gt;
&lt;h2&gt;Opportunity to learn more and challenge to impact through innovation&lt;/h2&gt;
&lt;p&gt;I love learning, reading, trying new things every day. At InfluxData, I’m learning a lot, working with a great team where we feel challenged to keep going and impact our customers worldwide with innovative solutions.&lt;/p&gt;
&lt;h2&gt;Do you want to join us?&lt;/h2&gt;
&lt;p&gt;We’re looking for you. Take a look at our &lt;a href="https://www.influxdata.com/careers/"&gt;careers page&lt;/a&gt; to know about the opportunities, but I warn you:&lt;/p&gt;
&lt;blockquote&gt;"We don't want people who just want jobs but who want careers that fuel their personal and professional growth."&lt;/blockquote&gt;
</description>
      <pubDate>Wed, 23 Dec 2020 04:00:12 -0700</pubDate>
      <link>https://www.influxdata.com/blog/why-i-joined-influxdata-ignacio-van-droogenbroeck/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/why-i-joined-influxdata-ignacio-van-droogenbroeck/</guid>
      <category>Company</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
    <item>
      <title>Monitoring COVID-19 in South America with InfluxDB</title>
      <description>&lt;p&gt;Monitoring COVID-19 metrics has become essential as the Coronavirus pandemic continues to impact countries across the globe. Mitigating virus impact and spread requires ongoing tracking of metrics such as cases and fatalities. This is what the &lt;a href="https://www.influxdata.com/influxdb-templates/covid-19-south-america/"&gt;InfluxDB COVID-19 Monitoring Template&lt;/a&gt; does.&lt;/p&gt;
&lt;h2&gt;Introducing the InfluxDB COVID-19 Monitoring Template&lt;/h2&gt;
&lt;p&gt;The template provides a dashboard that includes information about COVID-19 focused on the South American region; primarily Argentina, Bolivia, Brazil, Chile, Paraguay and Uruguay. I created it, as a contributor to the &lt;a href="https://community.influxdata.com/" target="_blank" rel="noopener"&gt;InfluxDB Community&lt;/a&gt;, before I joined InfluxData as a Solution Architect.&lt;/p&gt;

&lt;p&gt;I developed the template because I wanted to track the COVID-19 situation, not only in Uruguay where I live, but also in the South American region. I have family in Argentina, and friends in Chile and Paraguay, so I looked to monitor all the region. Groups that would find this template useful are those who want to know how other countries are ‘performing’ in the development of the pandemic.&lt;/p&gt;

&lt;p&gt;Previously, I had built a &lt;a href="https://www.influxdata.com/blog/tracking-covid-19-data-in-south-america-using-telegraf-and-influxdb/"&gt;COVID-19 monitoring Chronograf dashboard&lt;/a&gt;. Once &lt;a href="https://www.influxdata.com/products/influxdb-templates/"&gt;InfluxDB Templates&lt;/a&gt; for the InfluxDB UI (which includes a built-in visualization engine) were launched, I then built the InfluxDB Template for the same purpose. The template’s dashboard is shown below.&lt;/p&gt;

&lt;p&gt;&lt;img class="alignnone size-full wp-image-249610 aligncenter" src="/images/legacy-uploads/COVID-19-Dashboard.jpg" alt="COVID-19 dashboard" width="1200" height="625" /&gt;&lt;/p&gt;

&lt;p&gt;Dashboard information includes current data, new cases, graph about totals of cases and deaths, as well as — for reference — overall worldwide information about cases and deaths.&lt;/p&gt;

&lt;p&gt;As for how this template compares to other open source COVID-19 monitoring dashboards, the only dashboard I’ve seen with the kind of information I want is the Johns Hopkins University (JHU) dashboard. The ‘problem’ with this dashboard was that I couldn’t group the data for the countries I’m interested in. To install this InfluxDB template and get started with COVID-19 monitoring today, &lt;a href="https://cloud2.influxdata.com/signup"&gt;sign up for your free InfluxDB Cloud account&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The growing popularity of InfluxDB Templates&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.influxdata.com/blog/influxdb-templates-ui/"&gt;InfluxDB Templates&lt;/a&gt; let you quickly define your entire monitoring configuration (data sources, dashboards, and alerts) for any technology in one easily-shared, open-source text file that can be imported into InfluxDB with a single command. Most of the templates are community-contributed, and here are the guidelines for &lt;a href="https://www.influxdata.com/blog/how-to-build-an-influxdb-template/"&gt;building&lt;/a&gt; and &lt;a href="https://github.com/influxdata/community-templates/blob/master/docs/submit_a_template.md"&gt;submitting&lt;/a&gt; an InfluxDB Template.&lt;/p&gt;

&lt;p&gt;Using InfluxDB Templates is straightforward. You can start to track wherever you want, in most cases in a minute or so, and most of the templates don’t require more than defining a few things such as &lt;a href="https://github.com/influxdata/community-templates/tree/master/covid19-southamerica"&gt;environment variables&lt;/a&gt;. To start, just import a template from the &lt;a href="https://github.com/influxdata/community-templates"&gt;Community Templates on GitHub&lt;/a&gt;, export the &lt;code class="language-markup"&gt;HOST&lt;/code&gt;, &lt;code class="language-markup"&gt;TOKEN&lt;/code&gt;, and &lt;code class="language-markup"&gt;ORG&lt;/code&gt; as variables, copy the URL for the Telegraf config, run it in your machine or a container, and you’re done.&lt;/p&gt;

&lt;p&gt;Since I started contributing InfluxDB templates, I’ve seen the number of forks in the repository go up. Also, I really like seeing that InfluxDB use cases are not only focused on systems monitoring but also on tracking game progress, like Fortnite and &lt;a href="https://www.influxdata.com/blog/tracking-csgo-stats-with-influxdb/"&gt;CS:GO&lt;/a&gt;, currencies and home automation things.&lt;/p&gt;
</description>
      <pubDate>Tue, 22 Dec 2020 11:33:07 -0700</pubDate>
      <link>https://www.influxdata.com/blog/monitoring-covid-19-south-america-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/monitoring-covid-19-south-america-influxdb/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ignacio Van Droogenbroeck (InfluxData)</author>
    </item>
  </channel>
</rss>
