SQL Server
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

SQL Server

Agent Check Check de l'Agent

Supported OS: Linux Windows

Graphique SQL Server

Présentation

Ce check vous permet de suivre les performances de vos instances SQL Server. Il recueille les métriques concernant le nombre de connexions utilisateur, le nombre de compilations SQL, et plus encore.

Vous pouvez également créer vos propres métriques en demandant au check d’exécuter des requêtes personnalisées.

Implémentation

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

Installation

Le check SQL Server est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos instances SQL Server.

Vérifiez que votre instance SQL Server prend en charge l’authentification SQL Server en activant « Mode d’authentification SQL Server et Windows » dans les propriétés du serveur. Propriétés -> Sécurité -> *Mode d’authentification SQL Server et Windows**

Configuration

  1. Créez un utilisateur en lecture seule pour vous connecter à votre serveur :

       CREATE LOGIN datadog WITH PASSWORD = '<PASSWORD>';
       CREATE USER datadog FOR LOGIN datadog;
       GRANT SELECT on sys.dm_os_performance_counters to datadog;
       GRANT VIEW SERVER STATE to datadog;
  2. Créez un fichier sqlserver.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple sqlserver.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

    init_config:
    
    instances:
     - host: "<SQL_HOST>,<SQL_PORT>"
       username: datadog
       password: "<YOUR_PASSWORD>"
       connector: odbc # alternative is 'adodbapi'
       driver: SQL Server

    Consultez un exemple de configuration du check pour obtenir une description complète de toutes les options, mais également pour découvrir comment utiliser les requêtes personnalisées pour créer vos propres métriques.

    Remarque : le fournisseur (par défaut) SQLOLEDB est déconseillé. Pour utiliser le nouveau fournisseur MSOLEDBSQL, définissez la variable adoprovider sur MSOLEDBSQL dans votre fichier sqlserver.d/conf.yaml après avoir téléchargé le nouveau fournisseur depuis Microsoft. Vous pouvez également utiliser l’authentification Windows sans fournir de nom d’utilisateur ni de mot de passe en indiquant ce qui suit :

      connection_string: "Trusted_Connection=yes"
  3. Redémarrez l’Agent pour commencer à envoyer des métriques SQL Server à Datadog.

Linux

Des étapes de configuration supplémentaires sont requises pour exécuter l’intégration SQL Server sur un host Linux :

  1. Installez un pilote SQL Server ODBC, comme Microsoft ODBC Driver.
  2. Copiez les fichiers odbc.ini et odbcinst.ini dans le dossier /opt/datadog-agent/embedded/etc.
  3. Modifiez le fichier conf.yaml de façon à utiliser le connecteur odbc et indiquez le pilote approprié, comme indiqué dans le fichier odbcinst.ini.

Validation

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

Données collectées

Métriques

sqlserver.buffer.cache_hit_ratio
(gauge)
The ratio of data pages found and read from the buffer cache over all data page requests.
Shown as fraction
sqlserver.buffer.page_life_expectancy
(gauge)
Duration that a page resides in the buffer pool.
Shown as second
sqlserver.stats.batch_requests
(gauge)
The number of batch requests per second.
Shown as request
sqlserver.stats.sql_compilations
(gauge)
The number of SQL compilations per second.
Shown as operation
sqlserver.stats.sql_recompilations
(gauge)
The number of SQL re-compilations per second.
Shown as operation
sqlserver.stats.connections
(gauge)
The number of user connections.
Shown as connection
sqlserver.stats.lock_waits
(gauge)
The number of times per second that SQL Server is unable to retain a lock right away for a resource.
Shown as lock
sqlserver.access.page_splits
(gauge)
The number of page splits per second.
Shown as operation
sqlserver.stats.procs_blocked
(gauge)
The number of processes blocked.
Shown as process
sqlserver.buffer.checkpoint_pages
(gauge)
The number of pages flushed to disk per second by a checkpoint or other operation that require all dirty pages to be flushed.
Shown as page

La plupart de ces métriques proviennent de la table sys.dm_os_performance_counters de SQL Server.

Événements

Le check SQL Server n’inclut aucun événement.

Checks de service

sqlserver.can_connect :

Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à SQL Server pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Développement

Consultez la documentation principale sur les outils de développement pour découvrir comment tester et développer des intégrations reposant sur l’Agent.

Procédures de test

Windows

Pour exécuter les tests sous Windows, une instance de MSSQL doit être ouverte sur le host. Le nom de l’instance de la base de données et les identifiants correspondent à ceux de l’environnement d’intégration continue. Par conséquent, il se peut qu’ils ne fonctionnent pas directement sur un environnement de développement local.

Linux

Sous Linux, un conteneur Docker exécutant une instance MSSQL démarre automatiquement avant d’exécuter les tests. Nous utilisons unixODBC et FreeTDS pour communiquer avec la base de donnée. C’est pourquoi selon la distribution Linux utilisée, vous devez installer des dépendances supplémentaires sur votre environnement de développement local avant d’exécuter les tests. Par exemple, voici les étapes d’installation pour Ubuntu 14.04 :

sudo apt-get install unixodbc unixodbc-dev tdsodbc

OS X

Tout comme Linux, MSSQL s’exécute dans un conteneur Docker et nous communiquons avec la base de données via unixODBC et FreeTDS. Vous pouvez utiliser Homebrew pour installer les paquets requis :

brew install unixodbc
brew install freetds --with-unixodbc

Pour aller plus loin