BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Prometheus с нуля: архитектура, модель данных и первые системы мониторинга » Форматы данных и стандарты: OpenMetrics и exposition

Форматы данных и стандарты: OpenMetrics и exposition

Мониторинг под управлением Prometheus имеет дело с большим разнообразием источников метрик: от модульных сервисов до инфраструктурной платформы. Форматы данных, которыми эти метрики передаются и хранятся, являются критическим звеном в обеспечении совместимости, масштабируемости и возможности глубоких интерпретаций данных. В этой главе рассматриваются OpenMetrics и exposition - стандарты, которые задают единый язык для представления метрик, их типов, семантики и эволюций. Раскрывается, как эти форматы влияют на интеграцию экспортёров, выбор инструментов и архитектурные решения в рамках системы мониторинга.

OpenMetrics задаёт фундаментальные принципы передачи метрик между источниками и сборщиками, а exposition определяет конкретную текстовую или машинно читаемую форму их представления. Понимание этих стандартов важно не только для корректной работы существующей инфраструктуры, но и для планирования миграций, повышения качества данных и упрощения внедрения новых компонентов экосистемы Prometheus.

 

Краткое содержание главы

  • Понимание цели и состава OpenMetrics и exposition: зачем нужны стандарты и как они улучшают interoperability.
  • Архитектура данных и модель метрик: metric family, образцы, типы метрик и дополнительные данные.
  • Правила кодирования и семантика exposition: структура текстовой формы, валидность, временные отметки и примеры.
  • Экспортеры и совместимость: принципы реализации экспортёров и примеры реальных проектов.
  • Практика внедрения: миграция, тестирование и контроль качества экспозиции.
  • Практические выводы и дальнейшие направления.

     

Что такое OpenMetrics и exposition: цели и принципы

OpenMetrics - это открытый стандарт для экспозиции метрик, призванный унифицировать способы передачи значений из приложений и инфраструктуры в системы мониторинга. Его цель состоит в том, чтобы обеспечить единый, понятный и машиночитаемый формат, который не зависит от языка программирования, платформы или конкретного инструмента сбора. В контексте Prometheus OpenMetrics дополняет и расширяет существующий exposition format, формируя более четкие правила для семантики значений, меток и метрик, а также для новых возможностей, таких как дополнительные типы данных и улучшенная поддержка примеров (exemplars) для трассировки конкретных событий.

 

Основные принципы включают:

  • совместимость и прогнозируемость: инструменты и exporters должны «говорить на одном языке» и корректно интерпретировать типы метрик и их характеристики.
  • четкую семантику: каждый элемент экспозиции** - от имени метрики до единиц измерения и времени - имеет ясное значение, что минимизирует неоднозначности.
  • расширяемость: стандарт учитывает новые сценарии сбора данных, включая более сложные структуры метрик и дополнительные метаданные, не нарушая совместимость старых потребителей.
  • минимизацию ошибок: правила формата и валидации позволяют обнаруживать проблемы на этапе экспозиции, а не во время анализа.

В практическом плане это значит, что при соблюдении OpenMetrics и exposition можно:

  • достоверно сопоставлять данные между сервисами и облачными средами;
  • упростить миграции между инструментами мониторинга и экспортёрами;
  • упростить реинжинирование данных в аналитические конвейеры и хранилища.

OpenMetrics и exposition не отменяют необходимость корректной instrumentation; наоборот, они распространяют требования к надёжной постановке метрик на уровень, который обеспечивает единообразное поведение во всей системе мониторинга.

 

Архитектура данных и модель метрик

Фундаментальная единица в экспозиции метрик - это метрика, которая объединяет идентификатор, набор значений и контекст через метки. На концептуальном уровне выделяются следующие элементы.

  • Метрическая семья (metric family): совокупность всех значений с одинаковым именем метрики, но с различными наборами меток. Каждая метрика описывается типом (counter, gauge, histogram, summary, untyped) и часто сопровождается текстовым описанием и единицами измерения.

  • Образец (sample): конкретное значение метрики в единицу времени. Образец включает значение, набор лейблов и, по возможности, временную отметку (timestamp). В OpenMetrics timestamp имеет четкую трактовку и может быть обязательным или опциональным в зависимости от контекста; в Prometheus-тексте временная отметка обычно опциональна.

  • Лейблы (labels): дополнительные пары ключ-значение, которые позволяют различать измерения по контексту (например, метод HTTP-запроса, код ответа). Лейблы должны быть предсказуемыми и проходить валидацию по именам и значениям.

  • Типы метрик:

    • Counter: монотонно возрастающее значение, показывающее суммарное количество событий.
    • Gauge: текущее состояние (значение может возрастать и уменьшаться).
    • Histogram: распределение значений с сегментированными корзинами, суммой и количеством, что позволяет вычислять квантили и эволюцию распределения.
    • Summary: аналог распределение с прямым представлением квантилей; применяется, когда важны конкретные квантильные значения.
    • Untyped: универсальный тип, используемый, когда точный тип неизвестен или не имеет смысла.
  • Exemplars (экземплары): дополнительная информация, привязанная к конкретному образцу, например ссылку на trace или контекст запроса. Exemplars позволяют трассировать конкретные события через распределение метрик и повышают способность к детальному анализу. Поддержка exemplars варьируется между инструментами и версиями, и их использование не является обязательным требованием OpenMetrics, но становится все более распространённым в конвейерах с глубокими трассировками.

С точки зрения архитектуры сборки и анализа, OpenMetrics и exposition задают один и тот же контекст для всех компонентов: сервисы exposing метрики, экспортеры, сборщики и потребители должны работать с единым языком. Это облегчает интеграцию между микросервисами, умешает риск ошибок при агрегации и упрощает тестирование.

 

Форматы экспозиции: правила, типы и семантика

Exposition формирует конкретный текстовый, а в рамках OpenMetrics - более формализованный формат, который позволяет инструментам автоматически парсить данные, валидировать их и строить аналитические модели. В рамках Prometheus к exposition предъявляются следующие ключевые требования и принципы.

  • Структура содержания:
    • Метрика объясняется строкой помощи: HELP, описывающее предназначение и смысл метрики.
    • Тип метрики указывается строкой TYPE: counter, gauge, histogram, summary, untyped.
    • Далее следуют строки образцов: имя_метрики{label1="value1",label2="value2"} значение [timestamp].
  • Валидация имен и меток:
    • Имена метрик и ключей лейблов должны соответствовать согласованной схеме именования (часто используется префиксные схемы, разделители и т. п.), чтобы избежать конфликтов и обеспечить предсказуемость для потребителей.
    • Значения лейблов должны быть строками без специальных управляющих символов и ограничений на длину.
  • Формат времени:
    • В большинстве случаев временная метка указывается в миллисекундах с момента эпохи UNIX или опускается вовсе. Если она присутствует, она должна быть синхронизирована и корректна. Неправильные или дублирующиеся таймстампы приводят к неточным вычислениям и конфликтам в агрегации.
  • Экземплары:
    • Если поддержка exemplars включена, конкретный образец может нести дополнительную информацию, привязанную к трассировке или контексту запроса. Это расширение полезно для глубокой диагностики, но не обязательно поддерживается всеми экспортёрами.
  • Источники единиц:
    • Единицы измерения часто записываются как часть имени метрики или через единичный контекст, чтобы избежать неоднозначности при агрегации. В OpenMetrics единицы могут быть описаны явным образом и с согласованной семантикой.
  • Поддержка гомогенизации и совместимости:
    • Новые версии формата должны сохранять обратную совместимость с существующими потребителями, чтобы миграции и обновления проходили без простоя. Параллельная поддержка старого и нового форматов в рамках одной инфраструктуры - распространённая практика на этапах перехода.

Практическое влияние на архитектуру состоит в следующем. При проектировании системы мониторинга следует учитывать, что:

  • Выбор экспортеров и их окружения должен обеспечивать соответствие OpenMetrics; несовместимые экспортеры могут создавать «разрозненные» наборы метрик, что ухудшает аналитические сценарии.
  • Валидация форматов на стадии тестирования должна считаться частью CI/CD: инструменты, которые парсят exposition, должны ловить нарушения формата до деплоя в продакшн.
  • Экземплары полезны, но их наличие требует поддержки трассировочных систем и согласованных практик именования и контекстов, иначе они создают неразбериху.

     

Экспортеры и совместимость: как поставлять и потреблять

Экспортеры являются ключевым звеном между приложением и системой сбора метрик. Они должны не только собирать данные, но и представлять их в формате, который потребители (Prometheus, агентные сборщики, облачные конвейеры) смогут корректно распарсить и интерпретировать. В контексте OpenMetrics и exposition экспортер следует рассматривать как конвертер: из внутреннего состояния приложения - в единый язык метрик.

  • Основные принципы реализации экспортёров:

    • Соблюдать единый формат экспозиции: независимо от языка, экспортируемые данные должны соответствовать OpenMetrics и exposition, с корректными HELP и TYPE строками, валидными именами и лейблами.
    • Обеспечивать целостность данных: обработка пропусков, коррекция ошибок сериализации, корректная временная маркировка образцов.
    • Поддерживать расширяемость: возможность добавления новых типов метрик и полей без нарушения существующих потребителей.
    • Обеспечивать наблюдаемость экспортёра: включение внутренних метрик самого экспортёра (health, scrape_duration_seconds, failure_count и т. п.), чтобы можно было оперативно диагностировать проблемы.
  • Примеры распространённых экспортёров (1-2 примера на раздел):

    • node_exporter: один из самых известных экспортёров для инфраструктуры, собирающий системные метрики и экспортирующий их через exposition format. Он демонстрирует типичные паттерны сборки и обработки лейблов, совместимых с OpenMetrics.
    • blackbox_exporter: экспортирует метрики внешних сервисов и зависимостей, используя внешние проверки и возвращая их в формате, совместимом с Prometheus/OpenMetrics.

Эти примеры иллюстрируют подход к интеграции экспортёров в архитектуру мониторинга: они служат точками входа для данных, которые затем агрегируются в центральной системе и становятся доступными для аналитики и алертинга. Важно помнить, что экспортёры должны быть валидированы на соответствие формату и проходить тестирование в условиях продакшн-нагрузок.

 

Практика внедрения: миграция, тестирование и контроль качества экспозиции

Переход к единому формату экспозиции часто сопряжён с планированием и тестированием. В рамках практической реализации рекомендуется следующий подход.

  • План миграции:
    • Оценка текущих источников: какие сервисы и инфраструктурные элементы expose метрики и в каком формате.
    • Выбор целостного стандарта: определить, какие части OpenMetrics применимы к существующим метрикам и как адаптировать названия и лейблы.
    • Постепенная замена экспортёров: начать с менее критичных сервисов, чтобы проверить совместимость и поведение системы мониторинга.
  • Тестирование форматов:
    • Включение единого набора тестов на соответствие формату OpenMetrics: HELP и TYPE строки, валидность форматирования образцов, корректность временных отметок.
    • Валидаторы и симуляторы: использование инструментов для проверки экспозиции на больших объёмах данных, чтобы выявить проблемы преждевременно.
    • Тестирование совместимости: проверка того, что старые потребители корректно воспринимают обновлённые экспозиции.
  • Контроль качества и мониторинг самого экспортёра:
    • Включение внутренних метрик экспортёра (например, scrape_duration_seconds, scrape_failures) для наблюдаемости.
    • Наблюдение за задержками и перегрузкой: обеспечение того, что формат экспозиции не становится узким местом при высоких нагрузках.
    • Регулярная проверка на дубликаты и несогласованные метки: поддержание качества выборки и предотвращение роста кардинальности.
  • Практические сценарии миграции:
    • Параллельное экспонирование: временная поддержка старого формата рядом с новым, чтобы снизить риск сбоев.
    • Конвертация имен и лейблов: внедрение конвенций на уровне приложения, чтобы уменьшить переработку существующих конвейеров.
    • Обучение команд: обеспечение того, что команды разработки, операционные службы и аналитики понимают новую схему экспозиции и её влияние на конвейеры.

В рамках архитектурных решений следует помнить о границах ответственности между компонентами: экспортёр - источник данных, сборщик - потребитель и агрегация - аналитика и алертинг. Стратегия миграции и тестирования должна быть частью общего плана цифровой трансформации мониторинга: она поддерживает качественную эволюцию системы без остановки критически важных сервисов.

 

Key takeaways

  • OpenMetrics задаёт единый стандарт для экспозиции метрик, обеспечивая совместимость и предсказуемость поведения между разными компонентами экосистемы.
  • Модель метрик опирается на метрические семейства, образцы и лейблы; Exemplars позволяют связывать метрики с трассировками, расширяя возможности диагностики.
  • Формат экспозиции включает HELP и TYPE, а также строки образцов с метками и, при наличии, временными отметками. В OpenMetrics учитываются дополнительные возможности и строгие правила валидации.
  • Экспортёры должны строго соответствовать формату и обеспечивать надёжность, включая внутренние метрики обследования, мониторинг долговременной устойчивости и корректную обработку ошибок.
  • Миграционные практики должны начинаться с малого масштаба, включать тестирование форматов, верификацию совместимости и поэтапную замену экспортёра, чтобы минимизировать риски.
  • Включение exemplars и единиц измерения требует согласованных практик в трассировке и аналитике, чтобы не создавать лишнюю сложность в кардинальности и агрегациях.
  • Валидаторы форматов и тестовые конвейеры должны быть частью CI/CD, чтобы преждевременно выявлять нарушения формата и проблемы совместимости.

     

FAQ

  1. Что означают термины OpenMetrics и exposition в Prometheus?

OpenMetrics - это открытый стандарт для описания и передачи метрик в машиночитаемом виде, включая правила формата и семантику. Exposition - конкретная реализация формата передачи самых метрик, используемая экспортёрами и потребителями. В контексте Prometheus OpenMetrics обеспечивает более формализованный и расширяемый подход к экспозиции по сравнению с классическим exposition форматами.

 

  1. Какие преимущества даёт переход на OpenMetrics?

Преимущества включают унификацию форматов, улучшенную совместимость между экспортёрами и потребителями, возможность поддержки новых функций (таких как exemplars) и более строгую валидацию данных, что снижает риск ошибок при агрегации и анализе.

 

  1. Каковы типичные сложности при миграции на OpenMetrics?

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

 

  1. Что такое exemplars и зачем они нужны?

Exemplars - это дополнительные данные, привязанные к конкретному образцу метрики, зачастую содержащие контекст трассировки. Они позволяют детальнее исследовать причины аномалий в распределении метрик и связывать индикаторы событий с точными трассировками.

 

  1. Какие метрики обычно экспонируются в формате OpenMetrics?

Типичные метрики включают счётчики (counter), текущие значения (gauge), распределения (histogram) и квантильные представления (summary). В OpenMetrics поддерживаются дополнительные типы и сигнатуры, которые облегчают расширяемость и точность анализа.

 

  1. Какие экспортёры являются стандартами в экосистеме Prometheus?

Типичные примеры: node_exporter и blackbox_exporter. Они демонстрируют стандартные подходы к сбору системных метрик и внешних проверок, а также служат эталоном корректной реализации экспозиции.

 

  1. Как обеспечить совместимость старых потребителей с новым форматом экспозиции?

Лучшей практикой является параллельная поддержка старого формата на начальном этапе, поэтапная миграция метрик и строгая валидация, чтобы потребители могли постепенно переходить на новый формат без потери данных.

 

  1. Какие инструменты помогают валидировать форматы экспозиции?

Существуют валидаторы формата и тестовые наборы, которые проверяют корректность написания HELP, TYPE и образцов, а также соответствие правил именования и полей. Интеграция таких инструментов в CI/CD снижает риск ошибок на продакшн.

 

  1. Какие риски связаны с некорректной экспозицией метрик?

Риски включают дублирование данных, рост кардинальности, неверную агрегацию и temporal inaccuracies. Все это приводит к неточным алертам, неправильной аналитике и снижению общей надёжности мониторинга.

 

  1. Какие шаги предпринять для начала внедрения OpenMetrics в существующую инфраструктуру?

Начните с аудита текущих экспозиций, выберите набор экспортёров, которые лучше соответствуют OpenMetrics, проведите пилот с ограниченной группой сервисов, внедрите валидацию форматов и тесты, далее расширяйте покрытие и обучайте команды работе с новой схемой экспозиции.

 

← Предыдущая статья
Модель данных Prometheus: временные ряды, лейблы и метрики
Следующая статья →
Протоколы и безопасность: HTTP, TLS, базовые механизмы аутентификации

 

Узнать стоимость решенияЗапросить видео презентацию

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Нашей компанией был реализован проект автоматизации конвейера данных на базе СПО ETL-инструмента Apache NiFi для клиента ООО «Императорский Монетный Двор» в части актуализации данных, передаваемых из Системы Oracle в Anaplan.

  • ООО «Ай Пи Ти Групп» (IPT Group) — многопрофильный консалтинговый холдинг, специализирующийся на юридическом и финансовом сопровождении бизнеса. IPT Group занимает высокие позиции в профессиональных рейтингах, входит в ТОП-30 лучших юридических компаний России по версии «Право.ru-300», Global Law Experts и др.

  • Группа компаний «Невский кондитер» основана в 1996 году в Санкт-Петербурге и на сегодняшний день является одним из крупнейших производителей кондитерских изделий в России.

     

  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.