TeamCity

Supported OS Linux Windows Mac OS

Intégration4.2.0

Présentation

Cette intégration se connecte à votre serveur TeamCity pour envoyer des métriques, des checks de service, et des événements, ce qui vous permet de surveiller la santé des configurations et des exécutions des builds de vos projets TeamCity, les ressources du serveur, et plus encore.

Formule et utilisation

Installation

Le check TeamCity est inclus avec le package de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs TeamCity.

Dépannage de la solution Browser

Préparer TeamCity

Vous pouvez activer la connexion en tant quʼinvité, ou identifier des identifiants dʼutilisateur pour l’authentification HTTP standard.

Connexion en tant quʼinvité
  1. Enable guest login (en anglais).

  2. Activez Per-project permissions pour permettre l’attribution d’autorisations basées sur des projets à l’utilisateur invité. Consultez la section Changing Authorization Mode (en anglais). Activer la connexion en tant quʼinvité (en anglais).

  3. Utilisez un rôle en lecture seule existant ou créez-en un nouveau et ajoutez-lui l’autorisation View Usage Statistics. Consultez la section Managing Roles and Permissions (en anglais). Create Read-only Role (en anglais)

  4. [Facultatif] Pour permettre au check de détecter automatiquement le type de configuration du build lors de la collecte dʼévénement, ajoutez l’autorisation View Build Configuration Settings au rôle en lecture seule. Assign View Build Config Settings Permission (en anglais)

  5. Attribuez le rôle en lecture seule à lʼutilisateur invité. Consultez la section Assigning Roles to Users (en anglais). Guest user settings (en anglais) Assign Role (en anglais)

Identifiants d’utilisateur

Pour l’authentification HTTP standard

  • Indiquez un username et un password identifiés dans le fichier teamcity.d/conf.yaml, dans le dossier conf.d/ du répertoire de configuration de votre Agent.
  • Si vous rencontrez une erreur Access denied. Enable guest authentication or check user permissions., assurez-vous que l’utilisateur dispose des autorisations nécessaires :
    • Les autorisations par projet et pour la consultation des statistiques d’utilisation sont activées.
    • Si vous recueillez des statistiques sur la charge utile de lʼAgent, attribuez également les autorisations pour la consultation des détails de lʼagent et la consultation des statistiques sur lʼutilisation de lʼAgent.

SLO basés sur des métriques

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Modifiez le fichier teamcity.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple teamcity.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

Le check TeamCity propose deux méthodes de collecte de données. Pour surveiller votre environnement TeamCity de façon optimale, configurez deux instances distinctes pour collecter des métriques avec chaque méthode.

  1. Méthode OpenMetrics (nécessite Python version 3) :

    Activez use_openmetrics: true pour recueillir des métriques à partir de lʼendpoint Prometheus /metrics de TeamCity.

    init_config: 
    
    instances:
      - server: http://teamcity.<ACCOUNT_NAME>.com
    
        ## @param projects - mapping - optional
        ## Mapping of TeamCity projects and build configurations to
        ## collect events and metrics from the TeamCity REST API.
        #
        projects:
          <PROJECT_A>:
            include:    
            - <BUILD_CONFIG_A>
            - <BUILD_CONFIG_B>
            exclude:
            - <BUILD_CONFIG_C>
          <PROJECT_B>:
            include:
            - <BUILD_CONFIG_D>
          <PROJECT_C>: {}
    

Pour recueillir des métriques histogram/summary conformes OpenMetrics (disponibles avec TeamCity Server 2022.10+ et versions ultérieures), ajoutez la propriété interne teamcity.metrics.followOpenMetricsSpec=true. Consultez la section TeamCity Internal Properties (en anglais).

  1. Méthode avec lʼAPI REST du serveur TeamCity (nécessite Python version 3) :

    Configurez une instance distincte dans le fichier teamcity.d/conf.yaml pour collecter des métriques supplémentaires spécifiques au build, des checks de service, et des événements sur lʼétat du build depuis l’API REST du serveur TeamCity. Spécifiez vos projets et configurations de build à l’aide de l’option projects.

    init_config:
    
    instances:
      - server: http://teamcity.<ACCOUNT_NAME>.com
    
        ## @param projects - mapping - optional
        ## Mapping of TeamCity projects and build configurations to
        ## collect events and metrics from the TeamCity REST API.
        #
        projects:
          <PROJECT_A>:
            include:    
            - <BUILD_CONFIG_A>
            - <BUILD_CONFIG_B>
            exclude:
            - <BUILD_CONFIG_C>
          <PROJECT_B>:
            include:
            - <BUILD_CONFIG_D>
          <PROJECT_C>: {}
    

Personnalisez la surveillance de la configuration du build de chaque projet en utilisant les filtres facultatif include et exclude pour spécifier les ID de configuration de build à inclure ou à exclure de la surveillance, respectivement. Les patterns des expressions régulières sont pris en charge dans les clés include et exclude pour spécifier les modèles de correspondance des ID de configuration de build. Si les filtres include et exclude sont omis, toutes les configurations de build sont surveillées pour le projet spécifié.

Pour Python version 2, configurez un ID de configuration de build par instance à l’aide de l’option build_configuration :

init_config:

instances:
  - server: http://teamcity.<ACCOUNT_NAME>.com

    ## projets @param - mappage - facultatif
    ## Mappage de projets et de configurations de build TeamCity pour
    ## recueillir des événements et des métriques depuis lʼAPI REST de TeamCity.
    #
    build_configuration: <BUILD_CONFIGURATION_ID>

Redémarrez l’Agent pour commencer à recueillir et envoyer des événements TeamCity à Datadog.

APM
  1. Configurez les paramètres de journalisation TeamCity.

  2. Par défaut, le pipeline d’intégration de Datadog prend en charge les logs au format suivant :

    [2020-09-10 21:21:37,486]   INFO -  jetbrains.buildServer.STARTUP - Current stage: System is ready
    

    Dupliquez et modifiez le pipeline d’intégration si vous avez défini différents patterns de conversion.

  3. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  4. Supprimez la mise en commentaire du bloc de configuration du fichier teamcity.d/conf.yaml. Modifiez la valeur du paramètre path en fonction de votre environnement. Consultez le fichier d’exemple teamcity.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    logs:
      - type: file
        path: /opt/teamcity/logs/teamcity-server.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-activities.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-vcs.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-cleanup.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-notifications.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-ws.log
        source: teamcity
    
  5. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

ParamètreValeur
<NOM_INTÉGRATION>teamcity
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"server": "%%host%%", "use_openmetrics": "true"}
APM

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "teamcity"}

Validation

Lancez la sous-commande status de l’Agent et cherchez teamcity dans la section Checks.

Real User Monitoring

Analyse d’entonnoirs

Aide

Les événements TeamCity qui correspondent à des builds réussis et échoués sont transmis à Datadog.

Aide

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

PREVIEWING: may/embedded-workflows