---
title: Telegraf Documentation
description: Telegraf plugin for collecting metrics from Internet Speed Monitor
url: https://docs.influxdata.com/telegraf/v1/input-plugins/internet_speed/
estimated_tokens: 1867
product: Telegraf
version: v1
---

-   Telegraf v1.20.0+

# Internet Speed Monitor Input Plugin

This plugin collects metrics about the internet speed on the system like download/upload speed, latency etc using the [speedtest.net service](https://www.speedtest.net/).

**Introduced in:** Telegraf v1.20.0 **Tags:** network **OS support:** all

## Global configuration options

Plugins support additional global and plugin configuration settings for tasks such as modifying metrics, tags, and fields, creating aliases, and configuring plugin ordering. See [CONFIGURATION.md](/telegraf/v1/configuration/#plugins) for more details.

## Configuration

```toml
# Monitors internet speed using speedtest.net service
[[inputs.internet_speed]]
  ## This plugin downloads many MB of data each time it is run. As such
  ## consider setting a higher interval for this plugin to reduce the
  ## demand on your internet connection.
  # interval = "60m"

  ## Enable to reduce memory usage
  # memory_saving_mode = false

  ## Caches the closest server location
  # cache = false

  ## Number of concurrent connections
  ## By default or set to zero, the number of CPU cores is used. Use this to
  ## reduce the impact on system performance or to increase the connections on
  ## faster connections to ensure the fastest speed.
  # connections = 0

  ## Test mode
  ## By default, a single server is used for testing. This may work for most,
  ## however, setting to "multi" will reach out to multiple servers in an
  ## attempt to get closer to ideal internet speeds.
  ## And "multi" will use all available servers to calculate average packet loss.
  # test_mode = "single"

  ## Server ID exclude filter
  ## Allows the user to exclude or include specific server IDs received by
  ## speedtest-go. Values in the exclude option will be skipped over. Values in
  ## the include option are the only options that will be picked from.
  ##
  ## See the list of servers speedtest-go will return at:
  ##     https://www.speedtest.net/api/js/servers?engine=js&limit=10
  ##
  # server_id_exclude = []
  # server_id_include = []
```

On some systems, the default settings may cause speed tests to fail. If this affects your system, try enabling `memory_saving_mode`, which reduces the memory requirements and the runtime of the test at the cost of a reduced accuracy especially for fast (>30Mb/s) connections. Check the [upstream documentation](https://github.com/showwin/speedtest-go#memory-saving-mode) for details

## Metrics

It collects the following fields:

| Name | Field Name | Type | Unit |
| --- | --- | --- | --- |
| Download Speed | download | float64 | Mbps |
| Upload Speed | upload | float64 | Mbps |
| Latency | latency | float64 | ms |
| Jitter | jitter | float64 | ms |
| Packet Loss | packet_loss | float64 | percentage |
| Location | location | string | - |

The `packet_loss` will return -1, if packet loss not applicable.

And the following tags:

| Name | tag name |
| --- | --- |
| Source | source |
| Server ID | server_id |
| Test Mode | test_mode |

## Example Output

```text
internet_speed,source=speedtest02.z4internet.com:8080,server_id=54619,test_mode=single download=318.37580265897725,upload=30.444407341274385,latency=37.73174,jitter=1.99810,packet_loss=0.05377,location="Somewhere, TX" 1675458921000000000
internet_speed,source=speedtest02.z4internet.com:8080,server_id=54619,test_mode=multi download=318.37580265897725,upload=30.444407341274385,latency=37.73174,jitter=1.99810,packet_loss=-1,location="Somewhere, TX" 1675458921000000000
```

#### Related

-   [Configure plugins](/telegraf/v1/configure_plugins/)
-   [Internet Speed Monitor Plugin Source](https://github.com/influxdata/telegraf/tree/v1.38.4/plugins/inputs/internet_speed/README.md)
