Connect à une source de données MongoDB - Amazon Managed Grafana

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connect à une source de données MongoDB

La source de données MongoDB vous permet de visualiser les données de MongoDB dans Amazon Managed Grafana.

Note

Cette source de données est réservée à Grafana Enterprise. Pour plus d’informations, consultez Gérer l'accès aux plug-ins d'entreprise.

En outre, dans les espaces de travail qui prennent en charge la version 9 ou une version plus récente, cette source de données peut nécessiter l'installation du plug-in approprié. Pour plus d’informations, consultez Étendez votre espace de travail avec des plugins.

Utilisation

Éditeur de requête

L'éditeur de requêtes prend en charge la même syntaxe que le MongoDB Shell, avec certaines limitations :* Vous ne pouvez exécuter qu'une seule commande/requête. * Seules les commandes de lecture sont prises en charge : find et aggregate * La plupart des constructeurs d'objets ne sont pas pris en charge (à l'exception de IsoDate, qui est pris en charge)

L'éditeur développe la syntaxe MongoDB Shell de la manière suivante :

  • Sélection de la base de données — Vous pouvez fournir le nom de la base de données à la place du « db » normal :

    Note

    Vous pouvez toujours utiliser « db ». Il fera référence à la base de données par défaut dans votre chaîne de connexion.

    sample_mflix.movies.find()
  • Tri agrégé — Normalement, le tri s'effectue par une étape dans le pipeline d'agrégation, mais le niveau gratuit de MongoDB Atlas ne permet pas le tri. Nous avons étendu la syntaxe pour l'autoriser à ceux qui utilisent le niveau gratuit.

    Note

    MongoDB n'effectue pas le tri avec cette syntaxe. Le tri s'effectue une fois que les résultats ont été demandés dans la collection.

    sample_mflix.movies.aggregate({}).sort({"time": 1})
  • Avec un éditeur vide, Ctrl + Space affichera une sélection de toutes les bases de données disponibles.

  • La saisie d'un point après la base de données affichera une sélection de toutes les collections disponibles pour cette base de données.

  • La saisie d'un point après la collection affichera les méthodes de requête disponibles.

  • La saisie d'un point après la méthode de requête affichera des fonctions supplémentaires : trier/limiter.

Exécution de la requête

Appuyez sur Cmd + S pour exécuter la requête

Séries chronologiques

Lors de la visualisation de données de séries chronologiques, le plugin doit savoir quel champ utiliser comme heure. Projetez simplement le champ avec un alias de nom « time ». Le type de données du champ doit être une date.

Vous pouvez forcer les types de données non datés à ce jour. Cela permettra d'utiliser des champs autres que la date comme heure de la série chronologique. L'exemple suivant montre comment convertir le champ int « année » en une date projetée sous forme d' « heure » à l'aide de l'opérateur de dateFromParts pipeline MongoDB $.

sample_mflix.movies.aggregate([ {"$match": { "year": {"$gt" : 2000} }}, {"$group": { "_id": "$year", "count": { "$sum": 1 }}}, {"$project": { "_id": 0, "count": 1, "time": { "$dateFromParts": {"year": "$_id", "month": 2}}}} ] ).sort({"time": 1})

Diagnostic

Commandes de diagnostic

Les commandes de diagnostic suivantes sont actuellement prises en charge : « stats », « ServerStatus », "replSetGetStatus », « GetLog », « ConnectionStatus », connPoolStats « BuildInfo », « DBStats », « HostInfo », « LockInfo »

Exemples :

admin.connectionStatus() // run the connectionStatus command admin.connectionStatus({"authInfo.authenticatedUserRoles": 1}) // run and only return the "authInfo.authenticatedUserRoles" field admin.connPoolStats({arg: "pool"}) // run the connPoolStats command and pass 1 argument admin.serverStatus({args: {repl: 0, metrics:0}}) // run the serverStatus command and pass multiple args

Macros

Vous pouvez faire référence à la plage horaire du tableau de bord dans vos requêtes.

  • $__timeFrom — une macro qui référence l'heure de début du tableau de bord

  • $__timeTo — une macro qui référence l'heure de fin du tableau de bord

$__timeTo - ``` sample_mflix.movies.find({released: {$gt: "$__timeFrom"}}).sort({year: 1})

Variables du modèle

MongoDB soutient l'idée des « variables composées », qui vous permettent d'utiliser une variable sous forme de variables multiples pour effectuer des filtres multiclés complexes.

Pour créer une variable composée, utilisez la convention de dénomination qui consiste à diviser les variables en utilisant des traits de soulignement (doivent commencer par un trait de soulignement) : _var1_var2 lors de la requête, la réponse doit être au format suivant : val1-val2

Exemple : je souhaite filtrer les résultats en fonction du nom du film et de l'année.
  1. Créez une variable de type Query : _movie_year

  2. Définissez la variable query sur une requête qui renverra un tableau d'éléments avec une propriété ciné-année, comme indiqué dans l'exemple suivant.

    // Example sample_mflix.movies.aggregate([ {"$match": {year: {"$gt": 2011}}}, {"$project": {_id: 0, movie_year: {"$concat": ["$title", " - ", {"$toString":"$year"}]}}} ])
    // [{"movie-year": "Ted - 2016"}, {"movie-year": "The Terminator - 1985"}]
  3. Dans votre requête, vous pouvez désormais référencer « Movie » et « Year » en tant que variables de modèle distinctes en utilisant la syntaxe « $_variable ».

Utilisation de filtres ad hoc

En plus de la variable standard de type « filtre ad hoc », quel que soit son nom, une deuxième variable auxiliaire doit être créée. Il doit s'agir d'un type « constant » avec le nom « mongodb_adhoc_query` et une valeur compatible avec l'éditeur de requêtes. Le résultat de la requête sera utilisé pour renseigner les filtres sélectionnables. Vous pouvez choisir de masquer cette variable car elle ne sert à rien d'autre.

sample_mflix.movies.aggregate([ {"$group": { "_id": "$year"}}, {"$project": { "year": "$_id","_id": 0 }} ] )