目录
输入和输出集成概述
使用 Azure Monitor API 从 Azure 资源收集指标。
此插件使用参数化的 SQL INSERT 语句将来自 Telegraf 的指标直接写入 MariaDB,从而提供了一种将指标存储在结构化关系表中的灵活方法。
集成详情
Azure Monitor
Azure Monitor Telegraf 插件专门设计用于使用 Azure Monitor API 从各种 Azure 资源收集指标。 用户必须提供特定的凭据,例如 client_id
、client_secret
、tenant_id
和 subscription_id
,才能进行身份验证并访问其 Azure 资源。 此外,该插件还支持从单个资源和资源组或订阅收集指标的功能,从而可以根据用户需求灵活且可扩展地收集指标。 此插件非常适合利用 Azure 云基础设施的组织,可以深入了解资源性能和长期利用率,从而促进云资源的积极管理和优化。
MariaDB
Telegraf 中的 SQL 输出插件可以通过执行参数化的 SQL 语句,将指标直接写入与 SQL 兼容的数据库(如 MariaDB)。 通过支持 MySQL 驱动程序,该插件可以与 MariaDB 无缝集成,以实现可靠、结构化的指标存储。 此设置非常适合喜欢基于 SQL 的分析或希望将指标与业务数据一起存储以进行统一查询的用户。 MariaDB 是 MySQL 的一个社区开发的、企业级的分支,强调性能、安全性 和开放性。 该插件支持将时序指标插入自定义模式,从而可以使用 SQL 连接器灵活地进行分析并与 Metabase 或 Grafana 等 BI 工具集成。
配置
Azure Monitor
# Gather Azure resources metrics from Azure Monitor API
[[inputs.azure_monitor]]
# can be found under Overview->Essentials in the Azure portal for your application/service
subscription_id = "<>"
# can be obtained by registering an application under Azure Active Directory
client_id = "<>"
# can be obtained by registering an application under Azure Active Directory.
# If not specified Default Azure Credentials chain will be attempted:
# - Environment credentials (AZURE_*)
# - Workload Identity in Kubernetes cluster
# - Managed Identity
# - Azure CLI auth
# - Developer Azure CLI auth
client_secret = "<>"
# can be found under Azure Active Directory->Properties
tenant_id = "<>"
# Define the optional Azure cloud option e.g. AzureChina, AzureGovernment or AzurePublic. The default is AzurePublic.
# cloud_option = "AzurePublic"
# resource target #1 to collect metrics from
[[inputs.azure_monitor.resource_target]]
# can be found under Overview->Essentials->JSON View in the Azure portal for your application/service
# must start with 'resourceGroups/...' ('/subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx'
# must be removed from the beginning of Resource ID property value)
resource_id = "<>"
# the metric names to collect
# leave the array empty to use all metrics available to this resource
metrics = [ "<>", "<>" ]
# metrics aggregation type value to collect
# can be 'Total', 'Count', 'Average', 'Minimum', 'Maximum'
# leave the array empty to collect all aggregation types values for each metric
aggregations = [ "<>", "<>" ]
# resource target #2 to collect metrics from
[[inputs.azure_monitor.resource_target]]
resource_id = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
# resource group target #1 to collect metrics from resources under it with resource type
[[inputs.azure_monitor.resource_group_target]]
# the resource group name
resource_group = "<>"
# defines the resources to collect metrics from
[[inputs.azure_monitor.resource_group_target.resource]]
# the resource type
resource_type = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
# defines the resources to collect metrics from
[[inputs.azure_monitor.resource_group_target.resource]]
resource_type = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
# resource group target #2 to collect metrics from resources under it with resource type
[[inputs.azure_monitor.resource_group_target]]
resource_group = "<>"
[[inputs.azure_monitor.resource_group_target.resource]]
resource_type = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
# subscription target #1 to collect metrics from resources under it with resource type
[[inputs.azure_monitor.subscription_target]]
resource_type = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
# subscription target #2 to collect metrics from resources under it with resource type
[[inputs.azure_monitor.subscription_target]]
resource_type = "<>"
metrics = [ "<>", "<>" ]
aggregations = [ "<>", "<>" ]
</code></pre>
MariaDB
[[outputs.sql]]
## Database driver
## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres),
## sqlite (SQLite3), snowflake (snowflake.com) clickhouse (ClickHouse)
driver = "mysql"
## Data source name
## The format of the data source name is different for each database driver.
## See the plugin readme for details.
data_source_name = "username:password@tcp(host:port)/dbname"
## Timestamp column name
timestamp_column = "timestamp"
## Table creation template
## Available template variables:
## {TABLE} - table name as a quoted identifier
## {TABLELITERAL} - table name as a quoted string literal
## {COLUMNS} - column definitions (list of quoted identifiers and types)
table_template = "CREATE TABLE {TABLE}({COLUMNS})"
## SQL INSERT statement with placeholders. Telegraf will substitute values at runtime.
## table_template = "INSERT INTO metrics (timestamp, name, value, tags) VALUES (?, ?, ?, ?)"
## Table existence check template
## Available template variables:
## {TABLE} - tablename as a quoted identifier
table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1"
## Initialization SQL
init_sql = "SET sql_mode='ANSI_QUOTES';"
## Maximum amount of time a connection may be idle. "0s" means connections are
## never closed due to idle time.
connection_max_idle_time = "0s"
## Maximum amount of time a connection may be reused. "0s" means connections
## are never closed due to age.
connection_max_lifetime = "0s"
## Maximum number of connections in the idle connection pool. 0 means unlimited.
connection_max_idle = 2
## Maximum number of open connections to the database. 0 means unlimited.
connection_max_open = 0
## NOTE: Due to the way TOML is parsed, tables must be at the END of the
## plugin definition, otherwise additional config options are read as part of the
## table
## Metric type to SQL type conversion
## The values on the left are the data types Telegraf has and the values on
## the right are the data types Telegraf will use when sending to a database.
##
## The database values used must be data types the destination database
## understands. It is up to the user to ensure that the selected data type is
## available in the database they are using. Refer to your database
## documentation for what data types are available and supported.
#[outputs.sql.convert]
# integer = "INT"
# real = "DOUBLE"
# text = "TEXT"
# timestamp = "TIMESTAMP"
# defaultvalue = "TEXT"
# unsigned = "UNSIGNED"
# bool = "BOOL"
# ## This setting controls the behavior of the unsigned value. By default the
# ## setting will take the integer value and append the unsigned value to it. The other
# ## option is "literal", which will use the actual value the user provides to
# ## the unsigned option. This is useful for a database like ClickHouse where
# ## the unsigned value should use a value like "uint64".
# # conversion_style = "unsigned_suffix"
输入和输出集成示例
Azure Monitor
-
动态资源监控:使用 Azure Monitor 插件根据特定条件(如标签或资源类型)动态收集 Azure 资源的指标。 组织可以自动化加载和卸载资源指标的过程,从而根据资源利用率模式更好地跟踪和优化性能。
-
多云监控集成:使用集中式监控解决方案,将从 Azure Monitor 收集的指标与其他云提供商集成。 这使组织可以查看和分析跨多个云部署的性能数据,从而全面了解资源性能和成本,并简化运营。
-
异常检测和警报:利用通过 Azure Monitor 插件收集的指标以及机器学习算法来检测资源利用率异常。 通过建立基线性能指标并在出现偏差时自动发出警报,组织可以降低风险并在性能问题升级之前解决这些问题。
-
历史性能分析:通过将数据馈送到数据仓库解决方案中,使用收集的 Azure 指标进行历史分析。 这使组织可以跟踪长期趋势,从而可以根据历史性能数据进行详细报告和决策。
MariaDB
-
商业智能集成:将应用程序性能指标直接存储到 MariaDB 中,并将其连接到 Metabase 或 Apache Superset 等 BI 工具。 此设置允许将运营数据与业务 KPI 混合,以实现统一的仪表板,从而提高跨部门的可见性。
-
使用历史指标进行合规性报告:使用此插件将指标记录到 MariaDB 中,以用于审计和合规性用例。 关系模型可以精确查询带有时间戳条目的过去性能指标,从而支持监管文档。
-
基于 SQL 逻辑的自定义警报:将指标插入 MariaDB 并使用自定义 SQL 查询来定义警报阈值或条件。 结合 cron 作业或计划脚本,这可以实现传统指标平台无法实现的高级警报工作流程。
-
物联网传感器指标存储:通过 Telegraf 从物联网设备收集传感器数据,并使用规范化模式将其存储在 MariaDB 中。 这种方法具有成本效益,并且可以与现有的基于 SQL 的系统很好地集成,以进行实时或历史分析。
反馈
感谢您成为我们社区的一份子! 如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提出意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。