диаграмма в Kibana, которая вычисляет количество вхождений поля

У меня есть набор данных, который выглядит так. Число напротив языка — это доля этого языка, используемого в репозитории, в процентах.

{
 "repository" : "https://github.com/xxx",
 "nb_users" : 150,
 "project" : "projectA",
 "languages" : {
            "COBOL" : 9.54,
            "Batchfile" : 0.0,
            "CSS" : 0.03,
            "HTML" : 37.4,
            "Java" : 53.02
          }
}
{
 "repository" : "https://github.com/yyy",
 "nb_users" : 120,
 "project" : "projectA",
 "languages" : {
            "Javascript" : 33.98,
            "Java" : 56.02
          }
}                 
{
 "repository" : "https://github.com/zzz",
 "nb_users" : 10,
 "project" : "projectB",
 "languages" : {
            "C#" : 90,
            "HTML": 5,
            "Java" : 5
          }
}                 

Я хотел бы сделать 2 вещи с Кибаной

1) иметь общую оценку по языкам. Я хотел бы иметь круговую диаграмму, каждый фрагмент которой представляет язык, т.е. я хочу подсчитать количество вхождений полей Languages.Java, Languages.C и т. д. В этом случае Java появляется 3 раза, HTML 2 раза и отдохни один раз.

=> Как мне нарисовать такую ​​круговую диаграмму в Кибане?

2) собрать всю информацию о языке по проекту и по репозиторию, без учета процента. т. е. я хотел бы иметь возможность определить, что COBOL используется в 1 проекте и 1 репозитории JAVA используется в 2 проектах и ​​3 репозиториях => Как мне сделать, чтобы отобразить эту информацию, скажем, в гистограмме? Пример: гистограмма для каждого языка. Ось Y будет количеством проектов, использующих данный язык, а ось X будет состоять из разных языков.

Спасибо за вашу помощь


person iclman    schedule 19.05.2020    source источник


Ответы (1)


Мне удалось частично сделать то, что я хотел. то есть иметь количество репозиториев, использующих определенный язык, и отображать его на круговой диаграмме.

В кибане я создал круговую диаграмму в разделе визуализации:

В разделе «Метрики»: сделайте агрегацию с «Уникальным счетчиком» поля «репозиторий».

В разделе Buckets используйте «Разделить фрагменты» и используйте «Фильтры» в качестве агрегации. Добавьте фильтр для каждого языка. Таким образом, одним фильтром будет: "language.COBOL:", другим фильтром будет: "language.Batchfile:"

=> Я получаю круговую диаграмму, каждая часть которой содержит количество репозиториев для каждого языка.

person iclman    schedule 19.05.2020