Información general

Esta página te guiará a través de los archivos que debes rellenar para crear una oferta en la página Integraciones o en la página Marketplace.

Archivo de configuración

Al preparar una nueva integración, debes incluir una configuración de ejemplo que contenga las opciones necesarias y unos valores predeterminados razonables. El archivo de configuración de ejemplo, que en este caso se encuentra en <CHECK_NAME>/datadog_checks/<CHECK_NAME>/data/conf.yaml.example, tiene dos elementos de nivel superior: init_config y instances.

La configuración en init_config se aplica a la integración globalmente, y se utiliza en cada instanciación de la integración, mientras que cualquier cosa dentro de instances es específica a una instanciación dada.

Los bloques de configuración de cualquiera de las secciones tienen la siguiente forma:

## @<COMMAND> [- <ARGS>]
## <DESCRIPTION LINE 1>
## <DESCRIPTION LINE 2>
#
<KEY>: <VALUE>

Los bloques de configuración siguen algunas directrices:

  • Las descripciones no deben estar vacías.
  • Sigue siempre este formato: <THIS_IS_A_PLACEHOLDER> para los parámetros. Para más información, consulta las directrices de contribución del sitio de documentación.
  • Todos los parámetros requeridos no están comentados por defecto.
  • Todos los parámetros opcionales se comentan por defecto.
  • Si un parámetro tiene un valor predeterminado para una integración (como el endpoint de estado de una integración), se puede utilizar en lugar de un parámetro genérico.

Especificación de @param

Puedes utilizar el comando @param para describir bloques de configuración y proporcionar documentación para tu configuración.

@param se implementa utilizando una de las siguientes formas:

@param <name> - <type> - required
@param <name> - <type> - optional
@param <name> - <type> - optional - default: <defval>

Argumentos:

  • name: el nombre del parámetro, como search_string (obligatorio).
  • type: el tipo de datos para el valor del parámetro (obligatorio). Entre los valores posibles se incluyen los siguientes: booleano, cadena, entero, doble, flotante, diccionario, lista* y objecto*.
  • defval: valor por defecto del parámetro; puede estar vacío (opcional).

Las variables list y object se desplegan en varias líneas y tienen reglas especiales.

  • En list, los elementos individuales no se documentan con la especificación @param.
  • En object, puedes elegir entre documentar los elementos individualmente con la especificación @param o tener una descripción general común siguiendo la especificación del propio objeto.

Parámetros opcionales

Un parámetro opcional debe ser comentado por defecto. Antes de cada línea en la que se despliegue el parámetro, añade # con la misma sangría que la especificación @param.

Comentarios de bloque

Puedes añadir un comentario de bloque en cualquier parte del archivo de configuración con las siguientes reglas:

  • Los comentarios empiezan por ##.
  • Los comentarios deben tener sangría como cualquier variable (el guion no cuenta).

Para más información sobre la sintaxis de YAML, consulta el artículo de Wikipedia sobre YAML. También puedes explorar el Analizador en línea de YAML.

Archivo de manifiesto

Cada oferta de la página Integraciones o de la página Marketplace contiene un archivo manifest.json que define los parámetros de funcionamiento, el posicionamiento en el ecosistema de integración de Datadog y otros metadatos.

You can find the complete list of mandatory and optional attributes for the manifest.json file below:

manifest_version
Mandatory
Type: String Enum.
Description: Version of the manifest schema. Supported values include 1.0.0 and 2.0.0.
app_uuid
Mandatory
Type: UUID.
Description: Globally unique UUID for this application. This is automatically generated by Datadog when the developer toolkit ddev create command runs as part of creating tile scaffolding for your integration tile.
app_id
Mandatory
Type: String.
Description: The unique identifying name of this offering. Usually kebab case of the app title. For example, if the app title is “Marketplace Offering”, then the app_id would be marketplace-offering.
assets
Mandatory
Type: Dictionary.
Description: Object containing any Datadog installable entity.
assets[dashboards]
Optional
Type: Dictionary.
Description: Out-of-the-box dashboards associated with this offering.
assets[dashboards["dashboard_short_name"]]
Mandatory
Type: String.
Description: Key and value pairs for any out-of-the-box dashboards. The key is the globally unique short name of the dashboard and the value is the relative path to the dashboard’s JSON definition in relation to this manifest.
assets[integration]
Optional
Type: Dictionary.
Description: Object containing information about the integration.
assets[integration[auto_install]]
Mandatory
Type: Boolean.
Description: Whether or not the integration and related assets should be installed automatically when metrics or logs from the integration are received from the source. This is typically set to true for integrations using the Datadog Agent, and other integrations that are configured outside the Datadog UI. It is typically set to false for marketplace integrations and integrations that are configured with the Datadog UI, such as integrations using OAuth.
assets[integration[configuration]]
Mandatory, can be { }
Type: Dictionary.
Description: Object representing the configuration specification for this integration.
assets[integration[configuration[spec]]]
Mandatory
Type: String.
Description: Relative path to where the configuration spec lives in relation to this manifest.
assets[integration[events]]
Mandatory
Type: Dictionary.
Description: Information about events emitted by this integration.
assets[integration[events[creates_events]]]
Mandatory
Type: Boolean.
Description: Whether or not this integration emits events to Datadog.
assets[integration[metrics]]
Mandatory
Type: Dictionary.
Description: Information about the metrics this integration emits.
assets[integration[metrics[check]]]
Mandatory
Type: String or list of strings.
Description: A string or list representing metrics that this integration always emits on every run.
assets[integration[metrics[metadata_path]]]
Mandatory
Type: String.
Description: Relative path to where the metrics metadata lives in relation to this manifest.
assets[integration[metrics[prefix]]]
Mandatory
Type: String.
Description: The prefix for metrics emitted by this integration.
assets[integration[service_checks]]
Mandatory, can be { }
Type: Dictionary.
Description: Information about service checks emitted by this integration.
assets[integration[service_checks[metadata_path]]]
Mandatory
Type: String.
Description: Relative path to where the service check metadata lives in relation to this manifest.
assets[integration[source_type_name]]
Mandatory
Type: String.
Description: User-facing name of this integration.
assets[integration[source_type_id]]
Mandatory
Type: Integer.
Description: Globally unique ID for this integration. This is automatically generated by Datadog when the developer toolkit ddev create command runs as part of creating tile scaffolding for your integration tile.
assets[monitors]
Optional
Type: Dictionary.
Description: Recommended monitors.
assets[monitors["monitor_short_name"]]
Mandatory
Type: String.
Description: Key and value pairs for any recommended monitors. The key is the globally unique short name of the monitor and the value is the relative path to the monitor’s JSON definition in relation to this manifest.
author
Mandatory
Type: Dictionary.
Description: Information about the author of this app.
author[homepage]
Mandatory
Type: String (URL).
Description: The web URL to the homepage of the author.
author[name]
Mandatory
Type: String.
Description: The human-readable name for this company.
author[sales_email]
Mandatory
Type: String (Email).
Description: The Partner email to contact for any subscription-level events.
author[support_email]
Mandatory
Type: String (Email).
Description: The Partner email to contact for any support and maintenance queries.
author[contact_link]
Optional
Type: String (URL).
Description: The URL link to meeting scheduling software, such as Calendly. This field is mandatory for professional services listings.
author[vendor_id]
Mandatory
Type: String.
Description: The vendor ID to use for subscription purposes. Must be globally unique and cannot be changed. Should follow the strict standards of app_id where only dashes and alphabetic chars are allowed. This value is provided to Datadog Technology Partners.
display_on_public_website
Mandatory
Type: Boolean.
Description: Whether or not information about this listing is displayed on the public Datadog Docs site. Once this is set to true, it cannot be changed.
legal_terms
Mandatory
Type: Dictionary.
Description: Any legal documentation that a user needs to agree to in order to use this app.
legal_terms[eula]
Mandatory
Type: String.
Description: Relative path to the End User License Agreement (EULA) PDF in relation to this manifest.
pricing
Mandatory
Type: Array of Dictionaries.
Description: List of objects representing the pricing model of the integration. See the Marketplace GitHub repository for pricing details. The Marketplace GitHub repository is private, email marketplace@datadog.com for access.
tile
Mandatory
Type: Dictionary.
Description: Information about this offering.
tile[description]
Mandatory
Type: String[80].
Description: A brief description of what this offering provides. Limited to 80 characters.
tile[title]
Mandatory
Type: String[50].
Description: The user-friendly title for this app.
tile[media]
Mandatory, can be [ ]
Type: Array of Dictionaries.
Description: Information about the various image and video style objects that are presented in the media gallery carousel on the listing page.
tile[media[media_type]]
Mandatory
Type: String or Enum.
Description: The type of media this is. Allowed values are image and video.
tile[media[caption]]
Mandatory
Type: String.
Description: The caption for the image.
tile[media[image_url]]
Mandatory
Type: String.
Description: The relative path to this image in relation to this manifest file.
tile[classifier_tags]
Mandatory, can be [ ]
Type: Array of strings.
Description: Select and use the appropriate classifiers to describe this app, including categories, submitted or queried data types, supported_os, and available_offerings. For more information, see Classifier Tags.
tile[resources]
Optional
Type: Array of Dictionaries.
Description: List of externally hosted resources (blog posts, documentation, etc.) that appear in the “Dive Deeper” section of the integration tile with rich previews.
tile[resources[resource_type]]
Mandatory
Type: String.
Description: Type of resource being linked. Can be blog, documentation, faq, or other.
tile[resources[url]]
Mandatory
Type: String.
Description: Link to resource.

Etiquetas de clasificador

Puede establecer varias categorías y definir tipos de datos enviados o consultados para integración utilizando el parámetro classifier_tags.

A continuación, encontrarás la lista completa de las etiquetas de clasificador para el archivo manifest.json:

NameDescription
Category::AIIntegrations that monitor AI technologies.
Category::AlertingIntegrations that collect Datadog data to alert on, or send alerts into Datadog.
Category::AutomationIntegrations for technologies that automate processes such as security, compliance, testing, and AIOps.
Category::AWSIntegrations that send in data from Amazon Web Services and its related services.
Category::AzureIntegrations that send in data from Azure and its related services.
Category::CachingIntegrations that monitor caches and caching technologies.
Category::CloudIntegrations that submit data from cloud platforms and their related services.
Category::CollaborationIntegrations for platforms that center around communication and collaboration, such as code collaboration, messaging software, and conference calling.
Category::ComplianceIntegrations that monitor and send compliance data into Datadog, such as support for HIPPA, SOC2, GDPR, and more.
Category::Configuration & DeploymentIntegrations that monitor platforms that can configure and deploy infrastructure.
Category::ContainersIntegrations that track metrics, logs, events, and traces from containers and container management technologies.
Category::Cost ManagementIntegrations that help track and manage cloud cost.
Category::Data StoresIntegrations that monitor data storage solutions such as databases, clusters, data lakes, and more.
Category::Developer ToolsIntegrations for technologies that developers use to help build applications such as version control, CI/CD, and infrastructure as code.
Category::Event ManagementIntegrations that send events into Datadog or query events to send into external platforms.
Category::Google CloudIntegrations that send in data from Google Cloud and its related services.
Category::IncidentsIntegrations that send incidents into Datadog, or create incidents externally based on Datadog data.
Category::IOTIntegrations that monitor IoT (Internet of Things) devices.
Category::Issue TrackingIntegrations that help users identify and manage issues in their infrastructure or code.
Category::KubernetesIntegrations that send in data from Kubernetes and Kubernetes-related services.
Category::LanguagesIntegrations that send metrics and additional data based on specific programming languages.
Category::Log CollectionIntegrations that submit or query logs from Datadog.
Category::Machine Learning & LLMIntegrations that monitor Machine Learning technologies, Large Language Models, and assist with ML Operations.
Category::MainframeIntegrations that monitor mainframe systems such as IBM z/OS.
Category::MarketplaceIntegrations that are sold in the Datadog Marketplace for an additional fee.
Category::MessagingIntegrations that monitor messaging queues and messaging systems.
Category::MetricsIntegrations that submit and query metrics from Datadog.
Category::MobileIntegrations that monitor mobile devices and applications.
Category::NetworkIntegrations that monitor networks and network devices.
Category::NotificationsIntegrations for technologies that focus on notifications, for example, incident response.
Category::OracleIntegrations that monitor Oracle-based technologies.
Category::OrchestrationIntegrations for technologies that provide orchestration for containers and more.
Category::OS & SystemIntegrations that monitor operating systems or other low-level systems.
Category::ProvisioningIntegrations for technologies that manage the provisioning of resources across the cloud, containers, and more.
Category::SAPIntegrations for SAP technologies.
Category::SecurityIntegrations that monitor security tools or provide security reporting.
Category::SNMPIntegrations that monitor SNMP and related tools.
Category::Source ControlIntegrations that monitor source code collaboration tools such as Git.
Category::TestingIntegrations that monitor technologies that run browser tests, load testing, and more.
Category::TracingIntegrations that send in or query traces from Datadog, and interact with Datadog APM.
Offering::IntegrationThis is an offering that submits or queries data from a user’s Datadog account.
Offering::Professional ServiceThis is a paid offering that provides third-party professional services, such as consulting, integration creation, and more to Datadog customers through the Datadog Marketplace.
Offering::Software LicenseThis is a paid offering that provides a subscription to a SaaS product through the Datadog Marketplace.
Offering::UI ExtensionThis is a custom dashboard widget that displays a rendered, interactive iFrame on the dashboards of Datadog users.
Queried Data Type::MetricsAn integration that reads metrics from a Datadog user’s account.
Queried Data Type::LogsAn integration that reads logs from a Datadog user’s account.
Queried Data Type::TracesAn integration that reads traces from a Datadog user’s account.
Queried Data Type::EventsAn integration that reads events from a Datadog user’s account.
Queried Data Type::IncidentsAn integration that reads incidents from a Datadog user’s account.
Submitted Data Type::MetricsAn integration that sends metrics into a Datadog user’s account.
Submitted Data Type::LogsAn integration that sends logs into a Datadog user’s account.
Submitted Data Type::TracesAn integration that sends traces into a Datadog user’s account.
Submitted Data Type::EventsAn integration that sends events into a Datadog user’s account.
Submitted Data Type::IncidentsAn integration that sends incidents into a Datadog user’s account.
Supported OS::AndroidAn integration that can run on and query/submit data from Android.
Supported OS::AnyAn integration that can run on and query/submit data from any OS.
Supported OS::HP-UXAn integration that can run on and query/submit data from HP-UX.
Supported OS::IBM i/OSAn integration that can run on and query/submit data from IBM i/OS.
Supported OS::IBM z/OSAn integration that can run on and query/submit data from IBM z/OS.
Supported OS::iOSAn integration that can run on and query/submit data from iOS.
Supported OS::LinuxAn integration that can run on and query/submit data from Linux.
Supported OS::macOSAn integration that can run on and query/submit data from macOS.
Supported OS::SolarisAn integration that can run on and query/submit data from Solaris.
Supported OS::WindowsAn integration that can run on and query/submit data from Windows.

Archivo de check de servicio

El archivo service_check.json describe los checks de servicio hechos por la integración.

A continuación, encontrarás la lista completa de atributos obligatorios del archivo service_checks.json:

AtributoDescripción
agent_versionVersión mínima compatible del Agent.
integrationEl nombre de la integración que emite este check de servicio. Debe ser el tile.title no normalizado de manifest.json.
checkNombre del check de servicio. Debe ser único.
statusesLista de diferentes estados del check, para elegir entre ok, warning y critical. unknown también es una posibilidad.
groupsEtiquetas enviadas con el check de servicio.
nameNombre mostrado del check de servicio. El nombre mostrado debe ser autoexplicativo y único en todas las integraciones.
descriptionDescripción del check de servicio.

Archivo de metadatos de métricas

El archivo metadata.csv describe todas las métricas que puede recopilar la integración.

Más abajo encontrará la lista completa de atributos obligatorios y opcionales para el archivo metadata.csv:

Nombre de columnaObligatorio o opcionalDescripción
metric_nameObligatorioNombre de la métrica.
metric_typeObligatorioTipo de métrica. Para una lista de los tipos de envío de métrica disponibles, consulta Tipos de métricas.
intervalOpcionalIntervalo de recopilación de la métrica en segundos.
unit_nameOpcionalUnidad de la métrica. Para consultar la lista completa de las unidades admitidas, consulta Unidades de métricas.
per_unit_nameOpcionalSi hay una subdivisión de unidades, como request per second.
descriptionOpcionalDescripción de la métrica.
orientationObligatorioEstablece 1 si la métrica debe subir, tal como myapp.turnover. Establece en 0 si las variaciones de métrica son irrelevantes. Establece en -1 if the metric should go down, such as myapp.latency.
integrationObligatorioEl nombre de la integración que emite la métrica. Debe ser la versión normalizada del tile.title del archivo manifest.json. Todos los caracteres que no sean letras, guiones bajos, guiones y números se convierten en guiones bajos. Por ejemplo: Openstack Controller -> openstack_controller, ASP.NET -> asp_net, y CRI-o -> cri-o.
short_nameObligatorioUna versión abreviada y legible del nombre de métrica. No repitas el nombre de la integración. Por ejemplo, postgresql.index_blocks_hit debe abreviarse a idx blks hit.
curated_metricOpcionalMarca qué métricas son notables para una integración de un tipo dado (cpu y memory son ambos aceptados). Éstos aparecen en la interfaz de usuario por encima de las demás métricas de integración.
sample_tagsOpcionalLista de etiquetas de ejemplo asociadas a la métrica, separadas por comas sin espacios. Por ejemplo, host,region,deployment.

Referencias adicionales