Skip to main content

Integrations

Arc Cloud is compatible with the InfluxDB write API, line protocol, OpenTelemetry, and a wide range of data collection agents. This guide covers configuration for the most common integrations.

Throughout this guide, replace the base URL with your instance's URL:

https://<instance-id>.arc.<region>.basekick.net

Telegraf

Arc Output Plugin (Native)

Telegraf supports Arc natively via the Arc output plugin. This is the recommended approach for best performance.

[[outputs.arc]]
url = "https://<instance-id>.arc.<region>.basekick.net"
token = "<your-api-token>"
database = "telegraf"

InfluxDB v2 Output Plugin

If the Arc output plugin is not available in your Telegraf version, use the InfluxDB v2 output. Arc Cloud accepts InfluxDB 2.x writes on /api/v2/write.

[[outputs.influxdb_v2]]
urls = ["https://<instance-id>.arc.<region>.basekick.net"]
token = "<your-api-token>"
organization = ""
bucket = "telegraf"

The organization field is ignored by Arc but required by the plugin -- set it to any value or leave it empty.

InfluxDB Client Libraries

All InfluxDB client libraries work with Arc Cloud. Point the URL to your instance and provide your API token.

Python

from influxdb_client import InfluxDBClient
from influxdb_client.client.write_api import SYNCHRONOUS

client = InfluxDBClient(
url="https://<instance-id>.arc.<region>.basekick.net",
token="<your-api-token>",
org=""
)

write_api = client.write_api(write_options=SYNCHRONOUS)
write_api.write(
bucket="mydb",
record="cpu,host=server01 usage=0.64"
)

Go

package main

import (
"context"
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
)

func main() {
client := influxdb2.NewClient(
"https://<instance-id>.arc.<region>.basekick.net",
"<your-api-token>",
)
defer client.Close()

writeAPI := client.WriteAPIBlocking("", "mydb")
writeAPI.WriteRecord(
context.Background(),
"cpu,host=server01 usage=0.64",
)
}

Node.js

const { InfluxDB, Point } = require("@influxdata/influxdb-client");

const client = new InfluxDB({
url: "https://<instance-id>.arc.<region>.basekick.net",
token: "<your-api-token>",
});

const writeApi = client.getWriteApi("", "mydb", "ns");
const point = new Point("cpu").tag("host", "server01").floatField("usage", 0.64);
writeApi.writePoint(point);
writeApi.close();

OpenTelemetry

The OpenTelemetry Collector can forward traces, metrics, and logs to Arc Cloud using the Arc exporter.

exporters:
arc:
endpoint: "https://<instance-id>.arc.<region>.basekick.net"
token: "<your-api-token>"
database: "otel"

service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [arc]
traces:
receivers: [otlp]
processors: [batch]
exporters: [arc]
logs:
receivers: [otlp]
processors: [batch]
exporters: [arc]

Vector

Vector can send data to Arc Cloud via the HTTP sink, targeting the line protocol endpoint.

[sinks.arc_cloud]
type = "http"
inputs = ["your_source"]
uri = "https://<instance-id>.arc.<region>.basekick.net/api/v1/write/line-protocol"
method = "post"
encoding.codec = "text"

[sinks.arc_cloud.request.headers]
Authorization = "Bearer <your-api-token>"
Content-Type = "text/plain"

Fluentd

Use the Fluentd HTTP output plugin to send data to Arc Cloud's line protocol endpoint.

<match **>
@type http
endpoint https://<instance-id>.arc.<region>.basekick.net/api/v1/write/line-protocol
content_type text/plain
headers {"Authorization": "Bearer <your-api-token>"}

<format>
@type single_value
message_key message
</format>

<buffer>
flush_interval 5s
</buffer>
</match>

For structured metrics, consider writing a custom formatter that outputs line protocol, or use Vector as an intermediary.

Python SDK

The official Arc Python SDK provides a high-level client for ingestion and queries.

Installation

pip install arc-tsdb-client[all]

Usage

from arc_tsdb_client import ArcClient

client = ArcClient(
url="https://<instance-id>.arc.<region>.basekick.net",
token="<your-api-token>",
)

# Write line protocol
client.write("mydb", "cpu,host=server01 usage=0.64")

# Query
result = client.query("SELECT * FROM cpu ORDER BY time DESC LIMIT 10")
print(result.to_pandas())

# Write a Pandas DataFrame
import pandas as pd

df = pd.DataFrame({
"time": pd.to_datetime(["2026-03-23T12:00:00Z"]),
"host": ["server01"],
"usage": [0.64],
})
client.write_dataframe("mydb", "cpu", df, tag_columns=["host"])

MQTT

Arc Cloud instances that have MQTT enabled can subscribe to MQTT topics for IoT data ingestion. Check your instance dashboard under Settings > Protocols to confirm MQTT availability.

mqtt://<instance-id>.arc.<region>.basekick.net:1883

Authenticate with your API token as the MQTT password. The MQTT topic maps to the measurement name.