Salesforce 和 TimescaleDB 集成

强大的性能和简单的集成,由 Telegraf 提供支持,Telegraf 是 InfluxData 构建的开源数据连接器。

info

这不是大规模实时查询的推荐配置。 为了查询和压缩优化、高速摄取和高可用性,您可能需要考虑 Salesforce 和 InfluxDB

50 亿+

Telegraf 下载量

#1

时序数据库
来源:DB Engines

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

强大的性能,无限的扩展

收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 借助 InfluxDB,第一名时序平台,旨在与 Telegraf 一起扩展。

查看入门方法

输入和输出集成概述

Salesforce Telegraf 插件收集有关 Salesforce 组织中 API 使用情况和限制的关键指标,从而能够有效地监控和管理 API 消耗。

此输出插件为将 Telegraf 收集的指标直接路由到 TimescaleDB 提供了可靠高效的机制。 通过利用 PostgreSQL 强大的生态系统以及 TimescaleDB 的时序优化,它支持高性能数据摄取和高级查询功能。

集成详情

Salesforce

Salesforce 插件允许用户收集有关 Salesforce 组织中 API 使用限制和剩余使用量的指标。 通过利用 Salesforce 的 REST API,特别是 limits 端点,此插件可以深入了解已消耗的 API 使用量以及剩余的可用量。 这对于依赖 Salesforce 进行运营的组织尤其重要,因为超出 API 限制可能会中断服务并阻碍业务流程。 该插件将数据处理成结构化格式,其中包含各种 API 操作的最大值和剩余值,从而使团队可以更轻松地监控其使用情况并进行相应的计划。 提供的配置允许用户自定义其凭据、环境类型(沙箱或生产环境)和 API 版本,从而确保在不同部署场景中的灵活性。

TimescaleDB

TimescaleDB 是一个开源时序数据库,作为 PostgreSQL 的扩展而构建,旨在高效处理大规模、面向时间的数据。 TimescaleDB 于 2017 年推出,是为了响应对强大、可扩展解决方案日益增长的需求而诞生的,该解决方案可以管理海量数据,并具有高插入率和复杂查询。 通过利用 PostgreSQL 熟悉的 SQL 接口并通过专门的时序功能对其进行增强,TimescaleDB 迅速在希望将时序功能集成到现有关系数据库中的开发人员中流行起来。 它的混合方法使用户可以受益于 PostgreSQL 的灵活性、可靠性和生态系统,同时为时序数据提供优化的性能。

该数据库在需要快速摄取数据点并对历史时期进行复杂分析查询的环境中尤其有效。 TimescaleDB 具有许多创新功能,例如超表,它可以将数据透明地分区为可管理的块,以及内置的连续聚合。 这些功能可以显着提高查询速度和资源效率。

配置

Salesforce

[[inputs.salesforce]]
  ## specify your credentials
  ##
  username = "your_username"
  password = "your_password"
  ##
  ## (optional) security token
  # security_token = "your_security_token"
  ##
  ## (optional) environment type (sandbox or production)
  ## default is: production
  ##
  # environment = "production"
  ##
  ## (optional) API version (default: "39.0")
  ##
  # version = "39.0"

TimescaleDB

# Publishes metrics to a TimescaleDB database
[[outputs.postgresql]]
  ## Specify connection address via the standard libpq connection string:
  ##   host=... user=... password=... sslmode=... dbname=...
  ## Or a URL:
  ##   postgres://[user[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full]
  ## See https://postgresql.ac.cn/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
  ##
  ## All connection parameters are optional. Environment vars are also supported.
  ## e.g. PGPASSWORD, PGHOST, PGUSER, PGDATABASE
  ## All supported vars can be found here:
  ##  https://postgresql.ac.cn/docs/current/libpq-envars.html
  ##
  ## Non-standard parameters:
  ##   pool_max_conns (default: 1) - Maximum size of connection pool for parallel (per-batch per-table) inserts.
  ##   pool_min_conns (default: 0) - Minimum size of connection pool.
  ##   pool_max_conn_lifetime (default: 0s) - Maximum connection age before closing.
  ##   pool_max_conn_idle_time (default: 0s) - Maximum idle time of a connection before closing.
  ##   pool_health_check_period (default: 0s) - Duration between health checks on idle connections.
  # connection = ""

  ## Postgres schema to use.
  # schema = "public"

  ## Store tags as foreign keys in the metrics table. Default is false.
  # tags_as_foreign_keys = false

  ## Suffix to append to table name (measurement name) for the foreign tag table.
  # tag_table_suffix = "_tag"

  ## Deny inserting metrics if the foreign tag can't be inserted.
  # foreign_tag_constraint = false

  ## Store all tags as a JSONB object in a single 'tags' column.
  # tags_as_jsonb = false

  ## Store all fields as a JSONB object in a single 'fields' column.
  # fields_as_jsonb = false

  ## Name of the timestamp column
  ## NOTE: Some tools (e.g. Grafana) require the default name so be careful!
  # timestamp_column_name = "time"

  ## Type of the timestamp column
  ## Currently, "timestamp without time zone" and "timestamp with time zone"
  ## are supported
  # timestamp_column_type = "timestamp without time zone"

  ## Templated statements to execute when creating a new table.
  # create_templates = [
  #   '''CREATE TABLE {{ .table }} ({{ .columns }})''',
  # ]

  ## Templated statements to execute when adding columns to a table.
  ## Set to an empty list to disable. Points containing tags for which there is
  ## no column will be skipped. Points containing fields for which there is no
  ## column will have the field omitted.
  # add_column_templates = [
  #   '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
  # ]

  ## Templated statements to execute when creating a new tag table.
  # tag_table_create_templates = [
  #   '''CREATE TABLE {{ .table }} ({{ .columns }}, PRIMARY KEY (tag_id))''',
  # ]

  ## Templated statements to execute when adding columns to a tag table.
  ## Set to an empty list to disable. Points containing tags for which there is
  ## no column will be skipped.
  # tag_table_add_column_templates = [
  #   '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
  # ]

  ## The postgres data type to use for storing unsigned 64-bit integer values
  ## (Postgres does not have a native unsigned 64-bit integer type).
  ## The value can be one of:
  ##   numeric - Uses the PostgreSQL "numeric" data type.
  ##   uint8 - Requires pguint extension (https://github.com/petere/pguint)
  # uint64_type = "numeric"

  ## When using pool_max_conns > 1, and a temporary error occurs, the query is
  ## retried with an incremental backoff. This controls the maximum duration.
  # retry_max_backoff = "15s"

  ## Approximate number of tag IDs to store in in-memory cache (when using
  ## tags_as_foreign_keys). This is an optimization to skip inserting known
  ## tag IDs. Each entry consumes approximately 34 bytes of memory.
  # tag_cache_size = 100000

  ## Cut column names at the given length to not exceed PostgreSQL's
  ## 'identifier length' limit (default: no limit)
  ## (see https://postgresql.ac.cn/docs/current/limits.html)
  ## Be careful to not create duplicate column names!
  # column_name_length_limit = 0

  ## Enable & set the log level for the Postgres driver.
  # log_level = "warn" # trace, debug, info, warn, error, none

输入和输出集成示例

Salesforce

  1. 监控 API 限制使用情况以进行扩展决策: 使用 Salesforce 插件跟踪 API 限制使用情况随时间的变化,并就何时扩展 Salesforce 资源做出明智的决策。 通过可视化 API 消耗模式,组织可以预测高峰使用时间,从而使他们能够主动调整其基础设施或根据需要请求更高的限制。 这种优化可以提高性能并减少关键业务运营期间的停机时间。

  2. API 限制超出自动警报系统: 将此插件与通知系统集成,以便在 API 使用量接近临界限制时向团队发出警报。 此设置不仅确保团队收到主动通知以防止中断,而且还有助于维护运营连续性和客户满意度。 警报可以配置为触发自动脚本,这些脚本可以调整负载或相应地通知利益相关者。

  3. 多个 Salesforce 的比较分析: 利用 Salesforce 输入插件收集来自不同部门或业务部门的多个 Salesforce 实例的指标。 通过集中管理这些数据,组织可以执行比较分析,以识别可能比其他部门更频繁地超出其 API 限制的部门。 这有助于进行有针对性的讨论和制定策略,以平衡整个组织的 API 使用量,从而实现更好的资源分配和效率。

TimescaleDB

  1. 实时 IoT 数据摄取: 使用该插件实时收集和存储来自数千个 IoT 设备的传感器数据。 此设置有助于立即进行分析,帮助组织监控运营效率并快速响应不断变化的条件。

  2. 云应用程序性能监控: 利用该插件将来自分布式云应用程序的详细性能指标馈送到 TimescaleDB 中。 此集成支持实时仪表板和警报,使团队能够快速识别和缓解性能瓶颈。

  3. 历史数据分析和报告: 实施一个系统,将长期指标存储在 TimescaleDB 中以进行全面的历史分析。 这种方法使企业能够执行趋势分析、生成详细报告并根据存档的时序数据做出数据驱动的决策。

  4. 自适应警报和异常检测: 将该插件与自动异常检测工作流程集成。 通过将指标持续流式传输到 TimescaleDB,机器学习模型可以分析数据模式并在发生异常时触发警报,从而提高系统可靠性和主动维护能力。

反馈

感谢您成为我们社区的一份子! 如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提供意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。

强大的性能,无限的扩展

收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 借助 InfluxDB,第一名时序平台,旨在与 Telegraf 一起扩展。

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

HTTP 插件从一个或多个 HTTP(S) 端点收集指标。 它支持各种身份验证方法和数据格式的配置选项。

查看集成

Kafka 和 InfluxDB 集成

此插件从 Kafka 读取消息,并允许基于这些消息创建指标。 它支持各种配置,包括不同的 Kafka 设置和消息处理选项。

查看集成

Kinesis 和 InfluxDB 集成

Kinesis 插件允许从 AWS Kinesis 流中读取指标。 它支持多种输入数据格式,并提供使用 DynamoDB 的检查点功能,以实现可靠的消息处理。

查看集成