Начало работы с мониторингом цепочки вызовов CAT

Spring Cloud

Введение

CAT представляет собой мониторинг системы в реальном времени и рядом с полной суммой, которая фокусируется на мониторинге приложений Java, основным доступом к миссии США Шанхай все основные приложения. В настоящее время попадают в промежуточное программное обеспечение (MVC, RPC, базу данных, кэш и т. Д.) В рамках широкого спектра приложений, обеспечивающих показатели эффективности системы для миссии США, каждую бизнес-линию, здоровье, мониторинг.

Преимущество

  • Обработка в режиме реального времени: ценность информации резко снижается со временем, особенно во время обработки инцидентов.
  • Полные данные: Соберите все данные индикатора, чтобы облегчить углубленный анализ случаев отказа.
  • Высокая доступность: для восстановления после сбоя и локализации проблемы требуется мониторинг высокой доступности.
  • Отказоустойчивость: сбои не влияют на нормальную работу бизнеса и прозрачны для бизнеса.
  • Высокая пропускная способность: для сбора массивных данных мониторинга требуется высокая пропускная способность.
  • Масштабируемость: он поддерживает распределенное развертывание между IDC и горизонтально масштабируемую систему мониторинга.

Сравнение продуктов с открытым исходным кодом

Начать быстро

локальное развертывание

Шаг 1. Разверните Tomcat

Подготовьте tomcat и измените server.xml в каталоге conf tomcat, чтобы предотвратить искажение китайских символов.

Connector port="8080" protocol="HTTP/1.1"
           URIEncoding="utf-8"    connectionTimeout="20000"
               redirectPort="8443" />  <!-- 增加  URIEncoding="utf-8"  -->

Шаг 2: Программа имеет определенные права на чтение и запись для каталога /data/ (важно)

  • Linux

  • Требуется, чтобы каталог /data/ можно было читать и записывать.Если каталог /data/ не может быть записан, рекомендуется использовать программную ссылку linux для ссылки на фиксированный доступный для записи каталог.

  • В этом каталоге будут сохранены некоторые необходимые файлы конфигурации CAT и каталог хранения данных времени выполнения.

  • CAT поддерживает переменную среды CAT_HOME, а путь по умолчанию можно изменить с помощью параметров JVM.

mkdir /data
chmod -R 777 /data/
  • Windows

Иметь права на чтение и запись в /data/appdatas/cat и /data/applogs/cat на диске, на котором запущена программа. Например, если служба cat работает в tomcat на e-диске, вам необходимо иметь права на чтение и запись в e:/data/appdatas/cat и e:/data/applogs/cat.

Шаг 3. Настройте /data/appdatas/cat/client.xml ($CAT_HOME/client.xml)

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="127.0.0.1" port="2280" http-port="8080"/>
    </servers>
</config>

Роль этого файла конфигурации заключается в том, что всем клиентам нужен адрес, чтобы указать на CAT-сервер.

Шаг 4: Установите базу данных CAT

Загрузите исходный пакет кота:код load.GitHub.com/reviews/rub…После распаковки файл сценария базы данных имеет вид script/CatApplication.sql.

mysql -uroot -Dcat < CatApplication.sql

Шаг 5. Настройте /data/appdatas/cat/datasources.xml ($CAT_HOME/datasources.xml)

<?xml version="1.0" encoding="utf-8"?>

<data-sources>
	<data-source id="cat">
		<maximum-pool-size>3</maximum-pool-size>
		<connection-timeout>1s</connection-timeout>
		<idle-timeout>10m</idle-timeout>
		<statement-cache-size>1000</statement-cache-size>
		<properties>
			<driver>com.mysql.jdbc.Driver</driver>
			<url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>  <!-- 请替换为真实数据库URL及Port  -->
			<user>root</user>  <!-- 请替换为真实数据库用户名  -->
			<password>root</password>  <!-- 请替换为真实数据库密码  -->
			<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
		</properties>
	</data-source>
</data-sources>

Шаг 6: Военная упаковка

Официальная загрузка:ты попал на .org/Nexus/Servi…

Переименуйте его в cat.war для развертывания. Обратите внимание, что в этой войне используется jdk8. Пожалуйста, используйте версию jdk8 для сервера.

Шаг 7: военное развертывание

  • Разверните военный пакет, упакованный на предыдущем шаге, в веб-приложения нативного кота.
  • Запустите tomcat, откройте URL-адрес консоли,http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdateИмя пользователя по умолчанию: admin Пароль по умолчанию: admin.
  • Настройте маршрутизацию клиентов.
<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="你的本机ip(不要用127.0.0.1)" backup-server-port="2280">
   <default-server id="你的本机ip(不要用127.0.0.1)" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="默认" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="你的本机ip(不要用127.0.0.1)"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="你的本机ip(不要用127.0.0.1)" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

После отправки перезапустите tomcat, посетите http://127.0.0.1:8080/cat, и появится следующий интерфейс, указывающий, что установка прошла успешно.

контрольная работа

Установите пакет jar

Введите lib/java/jar исходного пакета cat и установите пакет cat-client-3.0.0.jar в локальный репозиторий maven.

mvn install:install-file -DgroupId=com.dianping.cat -DartifactId=cat-client Dversion=3.0.0 -Dpackaging=jar -Dfile=cat-client-3.0.0.jar

Создать проект

Создайте проект Springboot, код ключа выглядит следующим образом.

pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.dianping.cat</groupId>
    <artifactId>cat-client</artifactId>
    <version>3.0.0</version>
</dependency>

app.properties

Вам нужно создать файл src/main/resources/META-INF/app.properties в вашем проекте и добавить следующее:

app.name={appkey}

appkey может содержать только английские буквы (a-z, A-Z), цифры (0-9), символы подчеркивания (_) и тире (-)

application.yml

server:
  port: 8760

spring:
  application:
    name: cat-simple

стартовый класс

@SpringBootApplication
@RestController
public class CatSimpleApplication {


    public static void main(String[] args) {
        SpringApplication.run( CatSimpleApplication.class, args );
    }

    @PostMapping("/hi")
    public String hi(HttpServletRequest request){
        String url = request.getRequestURL().toString();

        // 创建一个 Transaction
        Transaction transaction = Cat.newTransaction( "URL", url );
        try {
            // 处理业务
            myBusiness();
            // 设置状态
            transaction.setStatus(Transaction.SUCCESS);
        } catch (Exception e) {
            // 设置错误状态
            transaction.setStatus(e);
            // 记录错误信息
            Cat.logError(e);
        } finally {
            // 结束 Transaction
            transaction.complete();
        }

        return "hello";
    }

    @PostMapping("/error")
    public String error(HttpServletRequest request){
        String url = request.getRequestURL().toString();

        // 创建一个 Transaction
        Transaction transaction = Cat.newTransaction( "URL", url );
        try {
            // 处理业务
            int i = 1 / 0;
            // 设置状态
            transaction.setStatus(Transaction.SUCCESS);
        } catch (Exception e) {
            // 设置错误状态
            transaction.setStatus(e);
            // 记录错误信息
            Cat.logError(e);
        } finally {
            // 结束 Transaction
            transaction.complete();
        }

        return "500";
    }

    private void myBusiness() {
        //模拟业务处理的时间
        try {
            Thread.sleep( 500 );
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }


}

проситьhttp://localhost:8760/hi

curl -X POST  http://localhost:8760/hi

проситьhttp://localhost:8760/error

curl -X POST  http://localhost:8760/error

Просмотр информации о мониторинге

Войдите в консоль cat, нажмите кнопку «Транзакция», а затем нажмите «Все», чтобы увидеть, какие клиенты доступны, как показано на рисунке:

Нажмите на клиенте cat-simple, как показано на рисунке:

Как показано на рисунке выше, вы можете четко видеть общее количество запросов (общее), среднее (среднее), максимальное/минимальное (макс./минимальное), стандартное отклонение (станд.) и т. д. Другие более интуитивно понятны, стандартное отклонение Это немного сложнее, каждый. Вы можете сами понять, как выполнять инкрементальные вычисления. Этот набор операций, например 95 строк (представляющих время выполнения 95% запросов), 999 строк (представляющих время выполнения 99,9% запросов)

Нажмите «Просмотр журнала», чтобы просмотреть сообщение об ошибке, как показано на рисунке:

исходный код

GitHub.com/Kung Fu-Change сенсорный экран…

Ссылаться на

GitHub.com/comments/rubbing…

Добро пожаловать, чтобы отсканировать код или выполнить поиск в общедоступной учетной записи «Programmer Guoguo» на WeChat и подписаться на меня, вас ждут сюрпризы~