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.
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é
Enable guest login (en anglais).
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).
(en anglais).
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).
(en anglais)
[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.
(en anglais)
Attribuez le rôle en lecture seule à lʼutilisateur invité. Consultez la section Assigning Roles to Users (en anglais).
(en anglais)
(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.
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).
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
Configurez les paramètres de journalisation TeamCity.
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.
La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml
:
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
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ètre | Valeur |
---|
<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ètre | Valeur |
---|
<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