Développé par l'équipe Alibaba Cloud Elasticsearch, le plug-in analytic-search est dédié à la recherche et à l'analyse de journaux. Il propose deux fonctionnalités : l'accélération des requêtes Kibana Discover et les requêtes concurrentes.
Remarques sur l'utilisation
Le plug-in analytic-search est un plug-in système préinstallé et ne peut pas être désinstallé. Vous pouvez le consulter sur la page de configuration des plug-ins. Ce plug-in nécessite un cluster Alibaba Cloud Elasticsearch en version 7.10.0 ou ultérieure, avec une version du noyau 1.7.0 ou ultérieure.
Accélération des requêtes Kibana Discover
Cette fonctionnalité réduit la latence des requêtes sans condition ou avec une seule condition en optimisant la stratégie de fusion des segments d'index et le plan d'exécution Date_histogram. Elle est idéale pour la consultation de journaux dans Kibana Discover.
Performances de référence
Environnement de test : 10 nœuds, chacun doté de 16 vCPU et de 64 Go de mémoire. Le jeu de données comprenait 60 milliards de documents de journaux métier par jour, répartis sur 12 index contenant chacun 60 shards.
|
Condition de requête |
SSD standard |
Disque ultra |
OpenStore |
|
Aucune condition |
Latence réduite de 96 % |
Latence réduite de 95 % |
Latence réduite de 94 % |
|
Condition unique |
Latence réduite de 88 % |
Latence réduite de 77 % |
Latence réduite de 85 % |
|
Conditions multiples |
Latence réduite de 8 % |
Latence réduite de 11 % |
Latence réduite de 14 % |
Activer l'accélération des requêtes Kibana Discover
Pour activer cette fonctionnalité, configurez les paramètres index.sort de votre index afin de trier les données par champ d'horodatage dans l'ordre décroissant. L'exemple suivant utilise @timestamp comme nom de champ ; adaptez-le ainsi que l'ordre de tri à vos données.
PUT test_log
{
"settings": {
"index.points.same_sort_order_as_index_sort": true,
"index.sort.field": [
"@timestamp"
],
"index.sort.order": [
"desc"
]
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
}
}
}
}
Requêtes concurrentes
Cette fonctionnalité exécute la phase de rappel des résultats en parallèle pour améliorer l'utilisation des ressources et réduire la latence moyenne de 50 %. Elle convient particulièrement aux scénarios à faible QPS, présentant une latence de rappel élevée et disposant de ressources de calcul suffisantes au niveau des nœuds.
Performances de référence
Environnement de test : trois nœuds de calcul partagés OpenStore (niveau chaud/froid), chacun doté de 16 vCPU et de 64 Go de mémoire. Le jeu de données consistait en un index unique de 1,6 To de journaux métier, contenant 6 milliards de documents répartis sur 60 shards. La requête se compose de 3 TermQuery(and) + TimeRange + Sort + Datehistogram, avec 10 millions de correspondances par shard (taux de correspondance de 10 %).
Résultats des tests :
Réduction de 65 % de la latence pour les requêtes sur un seul shard.
Réduction de 53 % de la latence pour les requêtes multi-shards.
Activer les requêtes concurrentes
Exécutez la commande suivante pour activer la fonctionnalité de requête concurrente :
PUT _cluster/settings
{
"persistent": {
"apack.analytic_search.doc_concurrency.enabled": "true"
}
}
Une fois activée, les nouvelles requêtes appliquent la politique de concurrence par défaut. Vous pouvez ajuster ce comportement à l'aide des paramètres suivants.
Paramètres au niveau du cluster
|
Paramètre |
Valeur par défaut |
Description |
|
apack.analytic_search.doc_concurrency.enabled |
false |
Active ou désactive la fonctionnalité de requête concurrente. |
|
apack.analytic_search.doc_concurrency.concurrent.policy |
80%:4;90%:2 |
Politique de concurrence. Le format est |
|
apack.analytic_search.doc_concurrency.min_support_doc |
10000 |
Désactive les requêtes concurrentes pour les index contenant moins de documents que cette valeur. |
|
apack.analytic_search.doc_concurrency.min_support_processors |
4 |
Désactive les requêtes concurrentes sur les nœuds disposant de moins de vCPU que cette valeur. |
|
apack.analytic_search.doc_concurrency.max_support_heap_usage |
80% |
Désactive les requêtes concurrentes sur les nœuds dont l'utilisation du tas JVM dépasse ce pourcentage. |
|
apack.analytic_search.doc_concurrency.max_support_cpu_usage |
90 |
Désactive les requêtes concurrentes sur les nœuds dont l'utilisation du CPU dépasse ce pourcentage. |
Paramètres au niveau de l'index
|
Paramètre |
Valeur par défaut |
Description |
|
index.apack.analytic_search.doc_concurrency.enabled |
true |
Active ou désactive les requêtes concurrentes pour l'index. |