scollector - пометка метрик из сферы
Просто вопрос о пометке scollector. У меня есть файл конфигурации, который выглядит так:
Host = "bosun01:80"
BatchSize = 5000
[Tags]
customer = "Admin"
environment = "bosun"
datacenter = "SITE1"
[[Vsphere]]
Host = "CUST2SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST3SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST4SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST4SITE2VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
CollectorExpr = "Vsphere"
[TagOverride.MatchedTags]
Host = '^(?P<customer>.{5})(?P<datacenter>.{5})(?P<environment>)\.[.]+'
идея заключается в том, что мы можем извлекать и маркировать данные с разных серверов vsphere.
Насколько я понимаю, документы таковы, что это даст нам ряд различных значений тегов, основанных на том, что является регулярным выражением из имени хоста Vsphere. Первоначальные теги предназначены для локального хоста, и мы используем переопределения для данных, поступающих из Vsphere.
Однако, когда я реализую это, я замечаю, что эти метрики приходят с исходным тегом среды "bosun", а не с применяемым переопределением.
Я попробовал альтернативный конфиг:
Host = "bosun01:80"
BatchSize = 5000
[Tags]
customer = "Admin"
environment = "bosun"
datacenter = "SITE1"
[[Vsphere]]
Host = "CUST2SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env01"
[[Vsphere]]
Host = "CUST3SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env02"
[[Vsphere]]
Host = "CUST4SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env03"
[[Vsphere]]
Host = "CUST4SITE2VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env04"
Но я вижу похожее поведение (последний тег окружения применяется ко всем данным vpshere), поэтому я не совсем уверен, где я ошибаюсь.
Может ли кто-нибудь помочь мне понять, где я иду не так?
Обновить
В соответствии с ответом Грега ниже, моя проблема заключалась в том, что у меня не совсем подходил CollectorExpr.
С помощью scollector -l
я смог придумать правильный CollectorExpr.
# ./scollector-linux-amd64 -l | grep vsphere
vsphere-CUST1-SITE1-MGMTVC01
vsphere-CUST1-SITE2-MGMTVC01
vsphere-CUST1-SITE1-CLIVC01
vsphere-CUST1-SITE2-CLIVC01
#
Наш конфиг (для тех, кто ищет примеры) закончился примерно так:
Host = "hwbosun01:80"
BatchSize = 5000
[Tags]
customer = "Customer1"
environment = "bosun"
datacenter = "eq"
[[Vsphere]]
Host = "CUST1-SITE1-MGMTVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST1-SITE2-MGMTVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST1-SITE1-CLIVVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST-SITE1-CLIVVC01"
User = "user"
Password = "pass"
[[TagOverride]]
CollectorExpr = "CUST-SITE1-MGMTVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site1'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-MGMTVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site2'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-CLIVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site1'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-CLIVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site2'
1 ответ
Я считаю, что CollectorExpr - это регулярное выражение, которое должно соответствовать выводу scollector -l
или значения тега коллектора, используемые в scollector.collector.duration
Метрика. Наши экземпляры vsphere получают значения тегов vsphere-ny-vsphere02 для ny-vsphere02 и vsphere-nyhq-vsphere01 для nyhq-vsphere01. Следующие параметры должны соответствовать этим именам сборщика:
[[TagOverride]]
CollectorExpr = "vsphere-ny-"
[TagOverride.Tags]
datacenter = 'ny'
[[TagOverride]]
CollectorExpr = "vsphere-nyhq-"
[TagOverride.Tags]
datacenter = 'nyhq'
С помощью [TagOverride.MatchedTags]
вместо [TagOverride.Tags]
должно работать для извлечения значения из имени хоста, но имейте в виду, что все имена хостов усекаются до их короткого имени (без полного доменного имени), если только вы не установите FullHost = true в файле scollector.toml. Я предполагаю, что ваши настройки не работают, потому что CollectorExpr неверен. Попробуйте что-то вроде:
[[TagOverride]]
CollectorExpr = "vsphere-"
[TagOverride.MatchedTags]
Host = '^(?P<customer>.{5})(?P<datacenter>.{5})(?P<environment>[^.]+)'
Если это не сработает, попробуйте использовать '[TagOverride.Tags]' в среде разработчика, чтобы посмотреть, можете ли вы добавить тестовые теги / значения к этим метрикам.