<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Integrations next (Experimental) on Grafana Labs</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/</link><description>Recent content in Integrations next (Experimental) on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/agent/v0.43/static/configuration/integrations/integrations-next/index.xml" rel="self" type="application/rss+xml"/><item><title>app_agent_receiver_config next</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/app-agent-receiver-config/</link><pubDate>Wed, 15 Apr 2026 03:22:24 +0000</pubDate><guid>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/app-agent-receiver-config/</guid><content><![CDATA[&lt;h1 id=&#34;app_agent_receiver_config-next&#34;&gt;app_agent_receiver_config next&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;app_agent_receiver_config&lt;/code&gt; block configures the &lt;code&gt;app_agent_receiver&lt;/code&gt;
integration. This integration exposes a http endpoint that can receive telemetry
from the &lt;a href=&#34;https://github.com/grafana/faro-web-sdk&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Faro Web SDK&lt;/a&gt;
and forward it to logs, traces or metrics backends.&lt;/p&gt;
&lt;p&gt;These are the options you have for configuring the app_agent_receiver integration.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  autoscrape:
    # Enables autoscrape of integrations.
    [enable: &amp;lt;boolean&amp;gt; | default = true]

    # Specifies the metrics instance name to send metrics to. Instance
    # names are located at metrics.configs[].name from the top-level config.
    # The instance must exist.
    #
    # As it is common to use the name &amp;#34;default&amp;#34; for your primary instance,
    # we assume the same here.
    [metrics_instance: &amp;lt;string&amp;gt; | default = &amp;#34;default&amp;#34;]

    # Autoscrape interval and timeout. Defaults are inherited from the global
    # section of the top-level metrics config.
    [scrape_interval: &amp;lt;duration&amp;gt; | default = &amp;lt;metrics.global.scrape_interval&amp;gt;]
    [scrape_timeout: &amp;lt;duration&amp;gt; | default = &amp;lt;metrics.global.scrape_timeout&amp;gt;]

  # Integration instance name
  [instance: &amp;lt;string&amp;gt;]

  # Traces instance to send traces to. This assumes that you have a traces config with such instance defined
  [traces_instance: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # Logs instance to send logs and exceptions to. This assumes that you have a logs
  # config with the instance defined
  [logs_instance: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # Server config refers to the HTTP endpoint that the integration will be exposing
  # to receive data from.
  server:
    [host: &amp;lt;string&amp;gt; | default = &amp;#34;127.0.0.1&amp;#34;]
    [port: &amp;lt;number&amp;gt; | default = 12347]

    # Domains in which the agent is sending data from. For example &amp;#34;https://myapp.com&amp;#34;
    cors_allowed_origins:
      [- &amp;lt;string&amp;gt;]

    # Configure rate limiting. The HTTP server of the App observability implements
    # a token bucket rate limitng algorithm in which we can configure the maximum RPS
    # as well as the burstiness (peaks of RPS)
    rate_limiting:
      [enabled: &amp;lt;boolean&amp;gt; | default = false]
      [rps: &amp;lt;number&amp;gt; | default = 100]
      [burstiness: &amp;lt;number&amp;gt; | default = 50]

    # If configured, incoming requests will be required to specify this key in &amp;#34;x-api-key&amp;#34; header
    [api_key: &amp;lt;string&amp;gt;]

    # Max allowed payload size in bytes for the JSON payload. Interanlly the
    # Content-Length header is used to make this check
    [max_allowed_payload_size: &amp;lt;number&amp;gt; | default = 0]

  # Labels to set for the log entry.
  # If value is specified, it will be used.
  # If value is empty and key exists in data, it&amp;#39;s value will be used from data
  logs_labels:
    [- &amp;lt;key&amp;gt;: &amp;lt;string&amp;gt;]

  # Timeout duration when sending an entry to Loki, milliseconds
  [logs_send_timeout: &amp;lt;duration&amp;gt; | default = 2s]

  # Sourcemap configuration for enabling stack trace transformation to original source locations
  [sourcemaps: &amp;lt;sourcemap_config&amp;gt;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;sourcemap_config&#34;&gt;sourcemap_config&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# Whether agent should attempt to download compiled sources and source maps
[download: &amp;lt;boolean&amp;gt; | default = false]

# List of HTTP origins to download sourcemaps for
[download_origins: []&amp;lt;string&amp;gt; | default = [&amp;#34;*&amp;#34;]]

# Timeout for downloading compiled sources and sourcemaps
[download_timeout: &amp;lt;duration&amp;gt; | default = &amp;#34;1s&amp;#34;]

# Sourcemap locations on filesystem. Takes precedence over downloading if both methods are enabled
filesystem:
  [- &amp;lt;sourcemap_file_location&amp;gt;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;sourcemap_file_location&#34;&gt;sourcemap_file_location&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# Grafana Faro Web SDK will send filename in stacktrace, when any exception is being captured.
# That filename will be the source url. e.g. https://my-app.dev/static/foo.js
#
# Source URL prefix. If a minified source URL matches this prefix,
# a filepath is constructed by removing the prefix, prepending path below and appending &amp;#34;.map&amp;#34;.
#
# Example:
#
# minified_path_prefix = &amp;#34;https://my-app.dev/static/&amp;#34;
# path = &amp;#34;/var/app/static/&amp;#34;
#
# Then given source url &amp;#34;https://my-app.dev/static/foo.js&amp;#34;
# it will look for sourcemap at &amp;#34;/var/app/static/foo.js.map&amp;#34;

minified_path_prefix: &amp;lt;string&amp;gt;

# Directory on file system that contains source maps.
# See above for more detailed explanation.
# It is parsed as a Go template. You can use &amp;#34;{{.Release }}&amp;#34; which will be replaced with
# app.release meta property.
path: &amp;lt;string&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="app_agent_receiver_config-next">app_agent_receiver_config next&lt;/h1>
&lt;p>The &lt;code>app_agent_receiver_config&lt;/code> block configures the &lt;code>app_agent_receiver&lt;/code>
integration. This integration exposes a http endpoint that can receive telemetry
from the &lt;a href="https://github.com/grafana/faro-web-sdk" target="_blank" rel="noopener noreferrer">Grafana Faro Web SDK&lt;/a>
and forward it to logs, traces or metrics backends.&lt;/p></description></item><item><title>blackbox_config next</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/blackbox-config/</link><pubDate>Wed, 15 Apr 2026 03:22:24 +0000</pubDate><guid>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/blackbox-config/</guid><content><![CDATA[&lt;h1 id=&#34;blackbox_config-next&#34;&gt;blackbox_config next&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;blackbox_config&lt;/code&gt; block configures the &lt;code&gt;blackbox_exporter&lt;/code&gt;
integration, which is an embedded version of
&lt;a href=&#34;https://github.com/prometheus/blackbox_exporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;blackbox_exporter&lt;/code&gt;&lt;/a&gt;. This allows
for the collection of blackbox metrics (probes) and exposing them as Prometheus metrics.&lt;/p&gt;
&lt;h2 id=&#34;quick-configuration-example&#34;&gt;Quick configuration example&lt;/h2&gt;
&lt;p&gt;To get started, define Blackbox targets in Grafana Agent&amp;rsquo;s integration block:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;metrics:
  wal_directory: /tmp/wal
  configs:
    - name: default
integrations:
  blackbox:
    blackbox_targets:
      - name: example
        address: http://example.com
        module: http_2xx
    blackbox_config:
      modules:
        http_2xx:
          prober: http
          timeout: 5s
          http:
            method: POST
            headers:
              Content-Type: application/json
            body: &amp;#39;{}&amp;#39;
            preferred_ip_protocol: &amp;#34;ip4&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Full reference of options:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # Provide an explicit value to uniquely identify this instance of the
  # integration. If not provided, a reasonable default will be inferred based
  # on the integration.
  #
  # The value here must be unique across all instances of the same integration.
  [instance: &amp;lt;string&amp;gt;]

  # Override autoscrape defaults for this integration.
  autoscrape:
    # Enables autoscrape of integrations.
    [enable: &amp;lt;boolean&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.enable&amp;gt;]

    # Specifies the metrics instance name to send metrics to.
    [metrics_instance: &amp;lt;string&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.metrics_instance&amp;gt;]

    # Autoscrape interval and timeout.
    [scrape_interval: &amp;lt;duration&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.scrape_interval&amp;gt;]
    [scrape_timeout: &amp;lt;duration&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.scrape_timeout&amp;gt;]

  # An optional extra set of labels to add to metrics from the integration target. These
  # labels are only exposed via the integration service discovery HTTP API and
  # added when autoscrape is used. They will not be found directly on the metrics
  # page for an integration.
  extra_labels:
    [ &amp;lt;labelname&amp;gt;: &amp;lt;labelvalue&amp;gt; ... ]

  #
  # Exporter-specific configuration options
  #

  # blackbox configuration file with custom modules.
  # This field has precedence to the config defined in the blackbox_config block.
  # See https://github.com/prometheus/blackbox_exporter/blob/master/example.yml for more details how to generate custom blackbox.yml file.
  [config_file: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # Embedded blackbox configuration. You can specify your modules here instead of an external config file.
  # See https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md for more details how to specify your blackbox modules.
  blackbox_config:
    [- &amp;lt;modules&amp;gt; ... ]

  # List of targets to probe
  blackbox_targets:
    [- &amp;lt;blackbox_target&amp;gt; ... ]

  # Option to configure blackbox_exporter.
  # Represents the offset to subtract from timeout in seconds when probing targets.
  [probe_timeout_offset: &amp;lt;float&amp;gt; | default = 0.5]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;blackbox_target-config&#34;&gt;blackbox_target config&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # Name of a blackbox_target
  [name: &amp;lt;string&amp;gt;]

  # The address of the target to probe
  [address: &amp;lt;string&amp;gt;]

  # Blackbox module to use to probe
  [module: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="blackbox_config-next">blackbox_config next&lt;/h1>
&lt;p>The &lt;code>blackbox_config&lt;/code> block configures the &lt;code>blackbox_exporter&lt;/code>
integration, which is an embedded version of
&lt;a href="https://github.com/prometheus/blackbox_exporter" target="_blank" rel="noopener noreferrer">&lt;code>blackbox_exporter&lt;/code>&lt;/a>. This allows
for the collection of blackbox metrics (probes) and exposing them as Prometheus metrics.&lt;/p></description></item><item><title>eventhandler_config next</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/eventhandler-config/</link><pubDate>Wed, 15 Apr 2026 03:22:24 +0000</pubDate><guid>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/eventhandler-config/</guid><content><![CDATA[&lt;h1 id=&#34;eventhandler_config-next&#34;&gt;eventhandler_config next&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;eventhandler_config&lt;/code&gt; configures the Kubernetes eventhandler integration. This
integration watches
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#event-v1-core&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Event&lt;/a&gt;
resources in a Kubernetes cluster and forwards them as log entries to a Loki
sink. This integration depends on the experimental &lt;code&gt;integrations-next&lt;/code&gt; feature
being enabled.&lt;/p&gt;
&lt;p&gt;On restart, the integration will look for a cache file (configured using
&lt;code&gt;cache_path&lt;/code&gt;) that stores the last shipped event. This file is optional, and if
present, will be used to avoid double-shipping events if Agent or the
integration restarts. Kubernetes expires events after 60 minutes, so events
older than 60 minutes ago will never be shipped.&lt;/p&gt;
&lt;p&gt;To use the cache feature and maintain state in a Kubernetes environment, a
&lt;a href=&#34;https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;StatefulSet&lt;/a&gt;
must be used. Sample manifests are provided at the bottom of this doc. Please
adjust these according to your deployment preferences. You can also use a
Deployment, however the presence of the cache file will not be guaranteed and
the integration may ship duplicate entries in the event of a restart. Loki does
not yet support entry deduplication for the A-&amp;gt;B-&amp;gt;A case, so further
deduplication can only take place at the Grafana / front-end layer (Grafana
Explore does provide some deduplication features for Loki datasources).&lt;/p&gt;
&lt;p&gt;This integration uses Grafana Agent&amp;rsquo;s embedded Loki-compatible &lt;code&gt;logs&lt;/code&gt; subsystem
to ship entries, and a logs client and sink must be configured to use the
integration. Please see the sample Agent config below for an example
configuration.
&lt;a href=&#34;/docs/loki/latest/clients/promtail/pipelines/&#34;&gt;Pipelines&lt;/a&gt;
and relabel configuration are not yet supported, but these features will be
added soon. You should use the &lt;code&gt;job=eventhandler cluster=...&lt;/code&gt; labels to query
your events (you can then use LogQL on top of the result set).&lt;/p&gt;
&lt;p&gt;If not running the integration in-cluster, the integration will use
&lt;code&gt;kubeconfig_path&lt;/code&gt; to search for a valid Kubeconfig file, defaulting to a
kubeconfig in the user&amp;rsquo;s home directory. If running in-cluster, the appropriate
&lt;code&gt;ServiceAccount&lt;/code&gt; and Roles must be defined. Sample manifests are provided
below.&lt;/p&gt;
&lt;p&gt;Configuration reference:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # Provide an explicit value to uniquely identify this instance of the
  # integration. If not provided, a reasonable default will be inferred based
  # on the integration.
  #
  # The value here must be unique across all instances of the same integration.
  [instance: &amp;lt;string&amp;gt;]

  ## Eventhandler hands watched events off to promtail using a promtail
  ## client channel. This parameter configures how long to wait (in seconds) on the channel
  ## before abandoning and moving on.
  [send_timeout: &amp;lt;int&amp;gt; | default = 60]

  ## Configures the path to a kubeconfig file. If not set, will fall back to using
  ## an in-cluster config. If this fails, will fall back to checking the user&amp;#39;s home
  ## directory for a kubeconfig.
  [kubeconfig_path: &amp;lt;string&amp;gt;]

  ## Path to a cache file that will store the last timestamp for a shipped event and events
  ## shipped for that timestamp. Used to prevent double-shipping on integration restart.
  [cache_path: &amp;lt;string&amp;gt; | default = &amp;#34;./.eventcache/eventhandler.cache&amp;#34;]

  ## Name of logs subsystem instance to hand log entries off to.
  [logs_instance: &amp;lt;string&amp;gt; | default = &amp;#34;default&amp;#34;]

  ## K8s informer resync interval (seconds). You should use defaults here unless you are
  ## familiar with K8s informers.
  [informer_resync: &amp;lt;int&amp;gt; | default = 120]

  ## The integration will flush the last event shipped out to disk every flush_interval seconds.
  [flush_interval: &amp;lt;int&amp;gt; | default = 10]

  ## If you would like to limit events to a given namespace, use this parameter.
  [namespace: &amp;lt;string&amp;gt;]

  ## Configure extra labels to add to log lines
  extra_labels:
    { &amp;lt;string&amp;gt;: &amp;lt;string&amp;gt; }

  ## Format of the log line. The possible values are &amp;#34;logfmt&amp;#34; and &amp;#34;json&amp;#34;.
  ## The values are also LogQL parsers, which can be used for processing the logs
  [log_format: &amp;lt;string&amp;gt; | default = &amp;#34;logfmt&amp;#34;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Sample agent config:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;server:
  log_level: info

integrations:
  eventhandler:
    cache_path: &amp;#34;/etc/eventhandler/eventhandler.cache&amp;#34;

logs:
  configs:
  - name: default
    clients:
    - url: https://logs-prod-us-central1.grafana.net/api/prom/push
      basic_auth:
        username: YOUR_LOKI_USER
        password: YOUR_LOKI_API_KEY
      external_labels:
        cluster: &amp;#34;cloud&amp;#34;
    positions:
      filename: /tmp/positions0.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Be sure to replace the Loki credentials with the appropriate values.&lt;/p&gt;
&lt;p&gt;Sample StatefulSet manifests. Please adjust these according to your needs:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: v1
kind: ServiceAccount
metadata:
  name: grafana-agent-eventhandler
  namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: grafana-agent-eventhandler
rules:
- apiGroups:
  - &amp;#34;&amp;#34;
  resources:
  - events
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: grafana-agent-eventhandler
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: grafana-agent-eventhandler
subjects:
- kind: ServiceAccount
  name: grafana-agent-eventhandler
  namespace: default
---
apiVersion: v1
kind: Service
metadata:
  name: grafana-agent-eventhandler-svc
spec:
  ports:
  - port: 12345
    name: http-metrics
  clusterIP: None
  selector:
    name: grafana-agent-eventhandler
---
kind: ConfigMap
metadata:
  name: grafana-agent-eventhandler
  namespace: default
apiVersion: v1
data:
  agent.yaml: |
    server:
      log_level: info

    integrations:
      eventhandler:
        cache_path: &amp;#34;/etc/eventhandler/eventhandler.cache&amp;#34;

    logs:
      configs:
      - name: default
        clients:
        - url: https://logs-prod-us-central1.grafana.net/api/prom/push
          basic_auth:
            username: YOUR_LOKI_USER
            password: YOUR_LOKI_API_KEY
          external_labels:
            cluster: &amp;#34;cloud&amp;#34;
        positions:
          filename: /tmp/positions0.yaml
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: grafana-agent-eventhandler
  namespace: default
spec:
  serviceName: &amp;#34;grafana-agent-eventhandler-svc&amp;#34;
  selector:
    matchLabels:
      name: grafana-agent-eventhandler
  replicas: 1
  template:
    metadata:
      labels:
        name: grafana-agent-eventhandler
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: agent
        image: grafana/agent:main
        imagePullPolicy: IfNotPresent
        args:
        - -config.file=/etc/agent/agent.yaml
        - -enable-features=integrations-next
        - -server.http.address=0.0.0.0:12345
        command:
        - /bin/grafana-agent
        env:
        - name: HOSTNAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        ports:
        - containerPort: 12345
          name: http-metrics
        volumeMounts:
        - name: grafana-agent
          mountPath: /etc/agent
        - name: eventhandler-cache
          mountPath: /etc/eventhandler
      serviceAccount: grafana-agent-eventhandler
      volumes:
        - configMap:
            name: grafana-agent-eventhandler
          name: grafana-agent
  volumeClaimTemplates:
  - metadata:
      name: eventhandler-cache
    spec:
      accessModes: [ &amp;#34;ReadWriteOnce&amp;#34; ]
      resources:
        requests:
          storage: 1Gi&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="eventhandler_config-next">eventhandler_config next&lt;/h1>
&lt;p>&lt;code>eventhandler_config&lt;/code> configures the Kubernetes eventhandler integration. This
integration watches
&lt;a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#event-v1-core" target="_blank" rel="noopener noreferrer">Event&lt;/a>
resources in a Kubernetes cluster and forwards them as log entries to a Loki
sink. This integration depends on the experimental &lt;code>integrations-next&lt;/code> feature
being enabled.&lt;/p></description></item><item><title>snmp config next</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/snmp-config/</link><pubDate>Wed, 15 Apr 2026 03:22:24 +0000</pubDate><guid>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/snmp-config/</guid><content><![CDATA[&lt;h1 id=&#34;snmp-config-next&#34;&gt;snmp config next&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;snmp&lt;/code&gt; block configures the &lt;code&gt;snmp&lt;/code&gt; integration,
which is an embedded version of
&lt;a href=&#34;https://github.com/prometheus/snmp_exporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;snmp_exporter&lt;/code&gt;&lt;/a&gt;. This allows collection of SNMP metrics from the network devices with ease.&lt;/p&gt;
&lt;h2 id=&#34;quick-configuration-example&#34;&gt;Quick configuration example&lt;/h2&gt;
&lt;p&gt;To get started, define SNMP targets in Grafana agent&amp;rsquo;s integration block:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;metrics:
  wal_directory: /tmp/wal
integrations:
  snmp:
    snmp_targets:
      - name: network_switch_1
        address: 192.168.1.2
        module: if_mib
        walk_params: public
        auth: public
      - name: network_router_2
        address: 192.168.1.3
        module: mikrotik
        walk_params: private
        auth: private
    walk_params:
      private:
        retries: 2
      public:
        retries: 1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;prometheus-service-discovery-use-case&#34;&gt;Prometheus service discovery use case&lt;/h2&gt;
&lt;p&gt;If you need to scrape SNMP devices in more dynamic environment, and cannot define devices in &lt;code&gt;snmp_targets&lt;/code&gt; because targets would change over time, you can use service discovery approach. For instance, with &lt;a href=&#34;https://prometheus.io/docs/prometheus/2.45/configuration/configuration/#dns_sd_config&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;DNS discovery&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;
metrics:
  wal_directory: /tmp/wal
  configs:
    - name: snmp_targets
      scrape_configs:
        - job_name: &amp;#39;snmp&amp;#39;
          dns_sd_configs:
            - names:
              - switches.srv.example.org
              - routers.srv.example.org
          params:
            module: [if_mib]
            walk_params: [private]
            auth: [private]
          metrics_path: /integrations/snmp/metrics
          relabel_configs:
            - source_labels: [__address__]
              target_label: __param_target
            - source_labels: [__param_target]
              target_label: instance
            - replacement: 127.0.0.1:12345 # address must match grafana agent -server.http.address flag
              target_label: __address__
integrations:
  snmp:
    autoscrape:
      enable: false # set autoscrape to off
    walk_params:
      private:
        retries: 2&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Full reference of options:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # Provide an explicit value to uniquely identify this instance of the
  # integration. If not provided, a reasonable default will be inferred based
  # on the integration.
  #
  # The value here must be unique across all instances of the same integration.
  [instance: &amp;lt;string&amp;gt;]

  # Override autoscrape defaults for this integration.
  autoscrape:
    # Enables autoscrape of integrations.
    [enable: &amp;lt;boolean&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.enable&amp;gt;]

    # Specifies the metrics instance name to send metrics to.
    [metrics_instance: &amp;lt;string&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.metrics_instance&amp;gt;]

    # Autoscrape interval and timeout.
    [scrape_interval: &amp;lt;duration&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.scrape_interval&amp;gt;]
    [scrape_timeout: &amp;lt;duration&amp;gt; | default = &amp;lt;integrations.metrics.autoscrape.scrape_timeout&amp;gt;]

  # An optional extra set of labels to add to metrics from the integration target. These
  # labels are only exposed via the integration service discovery HTTP API and
  # added when autoscrape is used. They will not be found directly on the metrics
  # page for an integration.
  extra_labels:
    [ &amp;lt;labelname&amp;gt;: &amp;lt;labelvalue&amp;gt; ... ]

  #
  # Exporter-specific configuration options
  #

  # SNMP configuration file with custom modules.
  # See https://github.com/prometheus/snmp_exporter#generating-configuration for more details how to generate custom snmp.yml file.
  # If not defined, embedded snmp_exporter default set of modules is used.
  [config_file: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # Embedded SNMP configuration. You can specify your modules here instead of an external config file.
  # See https://github.com/prometheus/snmp_exporter/tree/main#generating-configuration for more details how to specify your SNMP modules.
  # If this and config_file are not defined, embedded snmp_exporter default set of modules is used.
  snmp_config:
    [- &amp;lt;modules&amp;gt; ... ]
    [- &amp;lt;auths&amp;gt; ... ]

  # List of SNMP targets to poll
  snmp_targets:
    [- &amp;lt;snmp_target&amp;gt; ... ]

  # Map of SNMP connection profiles that can be used to override default SNMP settings.
  walk_params:
    [ &amp;lt;string&amp;gt;: &amp;lt;walk_param&amp;gt; ... ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;snmp_target-config&#34;&gt;snmp_target config&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # Name of a snmp_target
  [name: &amp;lt;string&amp;gt;]

  # The address of SNMP device
  [address: &amp;lt;string&amp;gt;]

  # SNMP module to use for polling
  [module: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # SNMP authentication profile to use
  [auth: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # walk_param config to use for this snmp_target
  [walk_params: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]

  # snmp_context overrides the `context_name` parameter in the SNMP configuration file.
  [snmp_context: &amp;lt;string&amp;gt; | default = &amp;#34;&amp;#34;]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;walk_param-config&#34;&gt;walk_param config&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  # How many objects to request with GET/GETBULK, defaults to 25.
  # May need to be reduced for buggy devices.
  [max_repetitions: &amp;lt;int&amp;gt; | default = 25]

  # How many times to retry a failed request, defaults to 3.
  [retries: &amp;lt;int&amp;gt; | default = 3]

  # Timeout for each SNMP request, defaults to 5s.
  [timeout: &amp;lt;duration&amp;gt; | default = 5s]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;about-snmp-modules&#34;&gt;About SNMP modules&lt;/h2&gt;
&lt;p&gt;SNMP module is the set of SNMP counters to be scraped together from the specific network device.&lt;/p&gt;
&lt;p&gt;SNMP modules available can be found in the embedded snmp.yml file &lt;a href=&#34;https://github.com/grafana/agent/blob/main/static/integrations/snmp_exporter/common/snmp.yml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;. If not specified, &lt;code&gt;if_mib&lt;/code&gt; module is used.&lt;/p&gt;
&lt;p&gt;If you need to use custom SNMP modules, you can &lt;a href=&#34;https://github.com/prometheus/snmp_exporter#generating-configuration&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;generate&lt;/a&gt; your own snmp.yml file and specify it using &lt;code&gt;config_file&lt;/code&gt; parameter.&lt;/p&gt;
]]></content><description>&lt;h1 id="snmp-config-next">snmp config next&lt;/h1>
&lt;p>The &lt;code>snmp&lt;/code> block configures the &lt;code>snmp&lt;/code> integration,
which is an embedded version of
&lt;a href="https://github.com/prometheus/snmp_exporter" target="_blank" rel="noopener noreferrer">&lt;code>snmp_exporter&lt;/code>&lt;/a>. This allows collection of SNMP metrics from the network devices with ease.&lt;/p></description></item><item><title>vsphere config (beta) next</title><link>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/vsphere-config/</link><pubDate>Wed, 15 Apr 2026 03:22:24 +0000</pubDate><guid>https://grafana.com/docs/agent/v0.43/static/configuration/integrations/integrations-next/vsphere-config/</guid><content><![CDATA[&lt;h1 id=&#34;vsphere-config-beta-next&#34;&gt;vsphere config (beta) next&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;vsphere_config&lt;/code&gt; block configures the &lt;code&gt;vmware_exporter&lt;/code&gt; integration, an embedded
version of &lt;a href=&#34;https://github.com/grafana/vmware_exporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;vmware_exporter&lt;/code&gt;&lt;/a&gt;, configured
to collect vSphere metrics. This integration is considered beta.&lt;/p&gt;
&lt;p&gt;Configuration reference:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;  autoscrape:
    # Enables autoscrape of integrations.
    [enable: &amp;lt;boolean&amp;gt; | default = true]

    # Specifies the metrics instance name to send metrics to. Instance
    # names are located at metrics.configs[].name from the top-level config.
    # The instance must exist.
    #
    # As it is common to use the name &amp;#34;default&amp;#34; for your primary instance,
    # we assume the same here.
    [metrics_instance: &amp;lt;string&amp;gt; | default = &amp;#34;default&amp;#34;]

    # Autoscrape interval and timeout. Defaults are inherited from the global
    # section of the top-level metrics config.
    [scrape_interval: &amp;lt;duration&amp;gt; | default = &amp;lt;metrics.global.scrape_interval&amp;gt;]
    [scrape_timeout: &amp;lt;duration&amp;gt; | default = &amp;lt;metrics.global.scrape_timeout&amp;gt;]

  # Integration instance name. This will default to the host:port of the configured
  # vsphere_url.
  [instance: &amp;lt;string&amp;gt; | default = &amp;lt;vsphere_url&amp;gt;]

  # Number of managed objects to include in each request to vsphere when
  # fetching performance counters.
  [request_chunk_size: &amp;lt;int&amp;gt; | default = 256]

  # Number of concurrent requests to vsphere when fetching performance counters.
  [collect_concurrency: &amp;lt;int&amp;gt; | default = 8]

  # Interval on which to run vsphere managed object discovery. Setting this to a
  # non-zero value will result in object discovery running in the background. Each
  # scrape will use object data gathered during the last discovery.
  # When this value is 0, object discovery occurs per scrape.
  [discovery_interval: &amp;lt;duration&amp;gt; | default = 0]
  [enable_exporter_metrics: &amp;lt;boolean&amp;gt; | default = true]

  # The url of the vCenter SDK endpoint
  vsphere_url: &amp;lt;string&amp;gt;

  # vCenter username
  vsphere_user: &amp;lt;string&amp;gt;

  # vCenter password
  vsphere_password: &amp;lt;string&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;quick-configuration-example&#34;&gt;Quick configuration example&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;integrations:
  vsphere_configs:
    - vsphere_url: https://127.0.0.1:8989/sdk
      vsphere_user: user
      vsphere_password: pass
      request_chunk_size: 256
      collect_concurrency: 8
      instance: vsphere
      autoscrape:
        enable: true
        metrics_instance: default

metrics:
  wal_directory: /tmp/grafana-agent-wal
server:
  log_level: debug&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="vsphere-config-beta-next">vsphere config (beta) next&lt;/h1>
&lt;p>The &lt;code>vsphere_config&lt;/code> block configures the &lt;code>vmware_exporter&lt;/code> integration, an embedded
version of &lt;a href="https://github.com/grafana/vmware_exporter" target="_blank" rel="noopener noreferrer">&lt;code>vmware_exporter&lt;/code>&lt;/a>, configured
to collect vSphere metrics. This integration is considered beta.&lt;/p></description></item></channel></rss>