Наблюдаемость означает степень, в которой внутреннее состояние системы можно вывести из ее внешних результатов. Наблюдаемость и управляемость системы — математически двойственные понятия.
Цитата иллюстрации: https://mp.weixin.qq.com/s/nAF3lv-qZprLWvOdvSbYXg
В современных программных системах и облачных вычислениях наблюдаемость играет все более важную роль в обеспечении надежности, производительности и безопасности приложений и инфраструктуры. С ростом сложности программных систем, широким распространением микросервисов и растущей зависимостью от распределенных архитектур важность наблюдаемости становится все более важной.
Наблюдаемость в основном включает в себя следующие три аспекта:
Инструменты наблюдения могут помочь системным администраторам и разработчикам собирать и анализировать вышеуказанные данные, чтобы улучшить понимание и контроль над системой.
Вот некоторые конкретные применения наблюдаемости:
от Одно приложение эра к Эпохе микросервисов, (индекс, бревно, ссылка) Размеры базы данных мониторов претерпели следующие изменения:
существовать Одно В эпоху приложений приложения обычно представляли собой единое целое, упаковывались и развертывались на сервере в рамках проекта. Поэтому мощность данных обычно одна, например мощность сервера. Процессор, память, сеть и другие показатели.
В эпоху SOA приложения делятся на несколько независимых сервисов, и каждый сервис можно независимо разрабатывать, развертывать и управлять им. Таким образом, база данных мониторинга становится более сложной, требующей внимания к использованию ресурсов, показателям производительности и т. д. каждого сервиса.
В эпоху микросервисов приложения делятся на более мелкие микросервисы, и каждый микросервис обычно отвечает только за определенную бизнес-функцию. Поэтому база данных мониторинга становится больше, и необходимо обращать внимание на использование ресурсов, показатели производительности, отслеживание ссылок и другие данные каждого микросервиса.
В частности, базовые параметры данных мониторинга для индикаторов, журналов и отслеживания ссылок в разные эпохи следующие:
этап | индекс | бревно | трассировка ссылок |
---|---|---|---|
Одно приложениеэпоха | Использование ресурсов сервера, показатели производительности и т. д. | Журнал запуска приложения | никто |
эпоха SOA | Использование ресурсов сервиса, показатели производительности и т. д. | Журнал работы сервиса | Связь между услугами |
Эпоха микросервисов | Использование ресурсов микросервиса, показатели производительности и т. д. | микро Журнал работы сервиса | Связи вызовов между микросервисами |
С развитием архитектуры приложений размеры базы данных мониторинга становятся все больше и больше, что выдвигает более высокие требования к проектированию и внедрению систем мониторинга. Система мониторинга должна иметь возможность собирать, хранить и анализировать данные мониторинга из разных источников и разных измерений, чтобы обеспечить комплексную поддержку работы и обслуживания приложений.
Традиционный ресурсно-ориентированный мониторинг в основном фокусируется на рабочем состоянии системы, включая общее состояние системы, узкие места в производительности и т. д. Традиционный ресурсно-ориентированный мониторинг обычно использует индикаторы для измерения рабочего состояния системы, такие как использование ЦП, использование памяти, сетевой трафик и т. д.
Наблюдение, ориентированное на приложение, фокусируется не только на рабочем состоянии системы, но также на бизнес-логике и данных приложения. Наблюдение, ориентированное на приложения, обычно использует такие технологии, как журналы и трассировка ссылок, для сбора и анализа данных, генерируемых во время работы приложений.
Размеры | Традиционный ресурсно-ориентированный мониторинг | Ориентированная на приложения наблюдаемость |
---|---|---|
фокус | Статус работы системы | Статус работы приложения, бизнес-логика, данные |
Источник данных | индекс | бревно、трассировка ссылок |
Традиционный ресурсно-ориентированный мониторингда Ориентированная на приложения наблюдаемостьчасть。Ориентированная на приложения наблюдательность нужно собирать и анализировать Статус работы системыизиндекс,Этииндексобычно состоит из Традиционный ресурсно-ориентированный мониторингпоставлять。
Традиционный ресурсно-ориентированный Объем мониторинга обычно ограничивается уровнем системы, например, серверами, контейнерами, ожиданием баз данных. Ориентированная на приложения Наблюдаемость может быть расширена до уровня приложения, например, бизнес-логики приложения и ожидания данных.
Конкретно,Традиционный ресурсно-ориентированный мониторинги Ориентированная на приложения наблюдаемостьсуществовать Существуют следующие аспектысуществоватьразница:
Конкретно,Дляресурсизмонитори Ориентированная на приложения наблюдаемостьсуществовать Существуют следующие аспектысуществоватьсоединять:
Конкретно,Традиционный ресурсно-ориентированный мониторинги Ориентированная на приложения наблюдаемостьсуществовать Существуют следующие аспектысуществоватьобъемразница:
Дляресурсизмонитори Ориентированная на приложения наблюдательность Два связанных, но разных понятия. Традиционный ресурсно-ориентированный мониторингда Ориентированная на приложения Часть наблюдения, которая может быть Ориентированная на приложения наблюдаемостьпоставлять基础。и Ориентированная на приложения Наблюдательность может быть расширена до уровня приложения, чтобы обеспечить бизнес-логику для приложения. данныхпоставлять支持。
Мониторинг системы в основном фокусируется на рабочем состоянии системы, включая общее состояние системы, узкие места в производительности и т. д. При мониторинге системы обычно используются метрики для измерения рабочего состояния системы, такие как загрузка ЦП, использование памяти, сетевой трафик и т. д.
Приложение Наблюдаемое Не толькососредоточиться на рабочее состояние системы, также обратите внимание Бизнес-логика и данные приложения. Приложение Наблюдаемое Обычно используется Журналы, отслеживание ссылкиждать технологию сбора и анализа данных, генерируемых во время работы приложения.
Конкретно,системамонитори Приложение Разницу Наблюдаемого можно резюмировать следующим образом:
Размеры | Мониторинг системы | Приложение Наблюдаемое |
---|---|---|
Цель анализа | Найдите неисправности и оптимизируйте производительность | Обнаруживайте ошибки, оптимизируйте производительность, анализируйте бизнес-логику и анализируйте данные. |
Индикаторы мониторинга | CPU、MEM、Used、Load | SLO, SLI, измерение времени, измерение событий, доступность |
Например, SLO — это целевой уровень обслуживания приложения, SLI — это индикатор для измерения SLO, измерение времени и событий могут помочь проанализировать бизнес-логику приложения, а доступность может помочь понять ситуацию с данными приложения.
Вот несколько советов по мониторингу развития вашей базы данных:
Распределенная система мониторинга используется для хранения и обработки данных мониторинга распределенным образом, чтобы справиться с ростом базы данных мониторинга.
Используйте технологию анализа данных для анализа и обработки данных мониторинга и извлечения ценной информации для повышения эффективности и результативности мониторинга.
Используйте автоматизированные инструменты, чтобы сократить ручное вмешательство и повысить автоматизацию мониторинга.
вместе Эволюция архитектуры приложений, возможность мониторинга данных хранения Также постоянно меняется。существовать Одно приложениеэпоха,Хранение файлы могут удовлетворить потребности в хранении данных монитора. существовать SOA В эпоху микросервисов необходимо использовать распределенные базы данных, такие как TSDB、NoSQL База данных и т. д. В будущем, по мере роста объема данных мониторинга и увеличения спроса на анализ, новые технологии баз данных, такие как графовые базы данных, будут играть все более важную роль в мониторинге хранения данных.
Способ хранения | модель данных | Эффективность хранения | Эффективность запросов | Применимые типы данных | Применимые сценарии | ограничение |
---|---|---|---|---|---|---|
Хранение файлов | неструктурированный | Низкий | Низкий | все | Простое хранение данных | Сложное управление данными и плохая масштабируемость |
SQLDB | Реляционный | высокий | высокий | структурированный | анализ данных | Плохо хранит неструктурированные данные и имеет плохую горизонтальную масштабируемость. |
TSDB | Тайминг | высокий | высокий | Данные временных рядов | Индикаторы мониторинга | Плохо хранит неструктурированные данные и поддерживает ограниченные типы данных. |
NoSQL | нереляционный | высокий | Низкийквысокий | все | Разнообразное хранилище данных | Гибкая модель данных、Эффективность запросов Не так хорошо, как Реляционныйбаза данных |
база данных строк | ХОРОШО | высокий | высокий | структурированный | Данные журнала | Гибкая модель данных |
база данных столбцов | Список | высокий | высокий | неструктурированный | Данные отслеживания ссылок | Гибкая модель данных |
графовая база данных | картина | высокий | высокий | реляционные данные | Топология приложения | Гибкая модель данных |
Сводка сравнения
Система мониторинга | Данные индикатора | Данные журнала | Данные отслеживания ссылок |
---|---|---|---|
Nagios | Хранение файлов | Хранение файлов | Не поддерживается |
Zabbix | SQLDB | SQLDB | Не поддерживается |
Prometheus | TSDB | TSDB | Не поддерживается |
наблюдаемая платформа | TSDB | NoSQL | NoSQL/графовая база данных |
Nagios и Zabbix Обычно используетсяместный Хранение файлы, вы также можете использовать сторонние Хранение система файлов, например Elasticsearch。
Prometheus Обычно используется InfluxDB、Grafana ждать TSDB и Инструменты визуализации。
наблюдаемая платформа Обычно используется OpenTelemetry、Prometheus ждать TSDB и Elasticsearch, ClickHouseждать NoSQL а такжеграфовая база данных。
Выберите предложения
2.5 база данных столбцовиграфовая база данныхиз优势
вместе Рост объема данных монитора, Эффективность данных монитора хранениеи Масштабируемость предъявляет больше требований. база данных столбцовиграфовая база Данные имеют следующие преимущества, которые делают их основным выбором для хранения данных мониторинга:
Благодаря постоянному развитию технологий искусственного интеллекта мониторинг с помощью искусственного интеллекта (AIGC) Это стало горячей тенденцией в сфере наблюдения. АЙГК Можно использовать технологию искусственного интеллекта.,Автоматизируйте задачи монитора,Повышайте эффективность и точность.
существовать AIGC , векторные базы данных могут играть важную вспомогательную роль. Векторные базы данных могут эффективно хранить и анализировать неструктурированные данные, такие как данные. журналаи Данные отслеживания ссылки. Эти данные обычно имеют следующие характеристики:
Объем данных большой, а структура сложная.
Вам необходимо быстро запросить данные, например запросить данные журнала или данные идентификационных ссылок в течение определенного периода времени.
Векторная база данных эффективности храненияи Эффективность запросов可以满足Эти需求。также,База данных Vector также поддерживает технологию искусственного интеллекта.,Может использоваться в следующих сценариях применения:
База данных векторов может быть AIGC предлагает следующие преимущества: Эффективное хранение и анализ некабельных данных. Поддерживает технологию искусственного интеллекта и может использоваться в сценариях обнаружения аномалий, диагностики неисправностей и оптимизации производительности.
Вот несколько конкретных примеров:
вместе с С непрерывным развитием технологии AIGC, ее применение в области векторных баз данных существующегомонитора будет становиться все более обширным.
Объединение различного программного обеспечения существует вместе,В соответствии с реальными потребностями,构建一个满足特定需求изнаблюдаемая платформа. Например, вы можете Prometheus、Grafana и AlertManager Объединитесь вместе, чтобы построить базовую наблюдательную платформа. Вы также можете Prometheus、Grafana、AlertManager и DeepFlow Объединитесь вместе, чтобы построить более мощную наблюдательную платформа
Комбинация выбора программного обеспечения наблюдательной платформы с открытым исходным кодом в основном включает в себя следующие аспекты:
в: