# telegraf-clickhouse-plugin The ClickHouse output plugin saves Telegraf metric data to a ClickHouse database. The plugin uses Golang's generic "database/sql" interface and third party drivers. ## Build Dependencies: * [Go](https://golang.org/doc/install) * [Make](https://www.gnu.org/software/make/) To build the plugin, run `make` in the root directory of the project. Alternatively, you can build the plugin using Docker: ```bash docker run --rm -v $(pwd):/telegraf -w /telegraf -e CGOENABLED=false -e GOOS=linux -e GOARCH=amd64 golang go build -o telegraf-clickhouse-plugin-linux-amd64 cmd/main.go docker run --rm -v $(pwd):/telegraf -w /telegraf -e CGOENABLED=false -e GOOS=linux -e GOARCH=arm64 golang go build -o telegraf-clickhouse-plugin-linux-arm64 cmd/main.go ``` ## Getting started To use the plugin, set the data source name (DSN). The user account must have privileges to insert rows and create tables. ## Advanced options When the plugin first connects it runs SQL from the init_sql setting, allowing you to perform custom initialization for the connection. Before inserting a row, the plugin checks whether the table exists. If it doesn't exist, the plugin creates the table. ## DSN Currently, Telegraf's sql output plugin depends on [clickhouse-go v1.5.4](https://github.com/ClickHouse/clickhouse-go/tree/v1.5.4) which uses a [different DSN format](https://github.com/ClickHouse/clickhouse-go/tree/v1.5.4#dsn) than its newer `v2.*` version.