There has been changes in inspector in v3.0.0. The newly renewed inspector will be referred to as 'New Inspector' below, while the previous version will be referred to as 'Legacy Inspector' (Legacy Application Inspector).
Although users won't see significant changes on front-end, but the whole architecture has been rebuilt from the scratch. The data storage has been changed from HBase to Pinot. And the APIs have been improved so that it is more easily extenable and their responses more clear to understand.
Kafka enables real-time streaming of inspector data from Pinpoint collector to Pinot.
Refer to this document to download Kafka and start the Kafka environment.
If you have already set up Kafka for Pinpoint System Metric, please skip this step.
- Create 2 topics with the names below:
- inspector-stat-agent-00
- inspector-stat-app
Install Pinot according to Pinot Getting Started guide.
If you have already set up Pinot for Pinpoint System Metric, please skip this step.
- Create 2 tables with the snames below:
- inspectorStatAgent00: This table stores agent inspector data. The script file to create the table is provided in our github repository.
- inspectorStatApp: This table stores application inspector data.
- Refer to the github repository for table schema and configuration settings.
- Related options and settings are already enabled by default, so there is no need to modify any settings from what is provided in our github repository.
- When upgrading from Pinpoint version below 3.0 to version 3.0.0 or above, some of the options may be missing in the configuration properties files you have been using. Please refer to the related configurations in the following section to check if any changes are needed in your settings.
- The following configurations are already set by default in Pinpoint version 3.0.
- When upgrading from Pinpoint version below 3.0 to version 3.0.0 or above and when you wish to continue using customized configuration files you have been using, please check if below mentioned configurations are well set in your files.
application.yml
file incollector-starter
module:
pinpoint:
modules:
collector:
inspector:
enabled: true
application.yml
file inweb-starter
module:
pinpoint:
modules:
web:
inspector:
enabled: true
batch-root.properties
file inbatch
module:
alarm.collector.version=2
Yes, but Legacy Inspector will be deprecated in v3.0.1 so we recommended you to use the New Inspector.
To use Legacy Inspector with v3.0.0, you need to add the following settings to the Pinpoint components:
Modify application.yml
file in collector-starter
module OR add java vm option when running Pinpoint Collector.
- application.yml
pinpoint:
modules:
collector:
inspector:
hbase:
enabled: true
- java vm option
-Dpinpoint.modules.collector.inspector.hbase.enabled=true
Modify batch-root.properties
file in batch
module OR add java vm option when running Pinpoint Batch.
- batch-root.properties
alarm.collector.version=1
- java vm option
-Dalarm.collector.version=1
New Inspector saves and retrieves the data faster than the Legacy Inspector thanks to Pinot. As Pinot project gets mature over time, there can be further improvements on performance or additional features can be introduced to Pinpoint Inpsector as well.
You can improve performance by distributing the data across multiple tables. Follow the steps below to create multiple Kafka topics and Pinot tables. Then, add settings to Pinpoint components to read and write data from multiple Pinot tables.
Create More Kafka Topics
- Create N Kafka topics. (From 00 to N-1)
- The format of the topics is as follows:
- inspector-stat-agent-00
- inspector-stat-agent-01
- ...
- inspector-stat-agent-99
Create More Pinot Tables
- Create N Pinot tables. (From 00 to N-1)
- The script file creating multiple Pinot tables is provided in our github repository.
- The format of the table names and schema names is as follows:
- inspectorStatAgent00
- inspectorStatAgent01
- ...
- inspectorStatAgent99
Modify application.yml
file in collector-starter
module OR add java vm option when running Pinpoint Collector
- application.yml
kafka:
inspector:
agent:
table:
count: N
- java vm option
-Dkafka.inspector.agent.topic.count=N
Modify application.yml
file in web-starter
module OR add java vm option when running Pinpoint Web
- application.yml
pinot:
inspector:
agent:
table:
count: N
- java vm option
-Dpinot.inspector.agent.topic.count=N
Modify batch-root.properties
file in batch
module OR add java vm option when running Pinpoint Batch
- batch-root.properties
job.alarm.agent.inspector.stat.table.count=N
- java vm option
-Djob.alarm.agent.inspector.stat.table.count=N
inspector가 Pinpoint v3.0.0에서 새로워졌습니다. 이하 새로워진 inspector를 'New Inspector'이라고 부르고 과거의 inspector는 'Legacy Inspector'라고 칭합니다 (Legacy Application Inspector).
New Inspector에서 사용자가 보는 화면은 크게 달라진 건은 없습니다. 그러나 내부적으로 많은 변화가 있었습니다. 데이터를 저장하는 저장소가 HBase에서 Pinot로 변경이 되었습니다. api를 쉽게 확장할 수 있고, response를 명확한 형식으로 개편했습니다. 즉 inspector 기능을 추가하고 확장하기 쉽게 개선되었습니다.
실시간으로 collector에서 데이터를 전달받아 Pinot에 저장하기 위해서 Kafka를 설치해야 합니다.
2.1.A Kafka 설치
설치 가이드 링크를 보고 Kafka를 다운 받아 실행합니다.
2.1.B topic 생성
- 아래 2개 Kafka topic을 생성합니다.
- inspector-stat-agent-00
- inspector-stat-app
2.1.A Pinot 설치
Pinot 사이트에서 설치 방법 가이드를 참고하여 Pinot를 설치합니다.
2.1.B Pinot table 생성
- 아래 2개 테이블을 생성합니다.
- inspectorStatAgent00: 이 테이블은 agent inspector data를 저장합니다. 스크립트로 생성이 가능합니다.
- inspectorStatApp: 이 테이블은 application inspector data를 저장합니다.
- table schema와 configuration은 github repository를 참고해주세요.
- 관련 옵션 및 설정은 기본적으로 활성화되어 있으므로 추가로 설정할 필요가 없습니다.
- Pinpoint 3.0 미만버전에서 3.0.0 이상버전으로 업그레이드 시 일부 옵션이 누락되는경우 아래 관련 옵션 설명을 참고해주세요.
- 아래 설정들은 Pinpoint 3.0 버전에서 기본적으로 설정되어있습니다.
- Pinpoint 버전을 3.0으로 업그레이드하는경우 일부 설정이 누락되는 경우 참고하기 위해서 설정을 명시해놓습니다.
collector-starter
모둘의application.yml
파일:
pinpoint:
modules:
collector:
inspector:
enabled: true
web-starter
모듈의application.yml
파일:
pinpoint:
modules:
web:
inspector:
enabled: true
batch
모듈의batch-root.properties
파일:
alarm.collector.version=2
가능합니다. 그러나 3.0.1 버전 이상 부터는 Legacy Inspector를 삭제할 예정이므로 Pinpoint 버전이 올라갈수록 기능을 사용할수 없으므로 New Inspector를 사용하는것을 권장합니다. 기능을 사용하려면 Pinpoint 컴포넌트들에 아래 설정을 추가해야합니다.
collector-starter 프로젝트의 application.yml 파일이나 java vm option에 아래 설정을 추가해주세요.
- application.yml
pinpoint:
modules:
collector:
inspector:
hbase:
enabled: true
- java vm option
-Dpinpoint.modules.collector.inspector.hbase.enabled=true
batch 프로젝트에서 batch-root.properties 파일이나 java vm option에 아래 설정을 추가해주세요.
- batch-root.properties
alarm.collector.version=1
- java vm option
-Dalarm.collector.version=1
다양한 데이터를 빠르게 저장하고 확인하고 위해서 Pinot로 데이터를 저장하도록 개선되었고 아직 부족한 기능이 많지만 Pinot의 발전에 맞춰서 기능을 보완하도록 하겠습니다.
여러 개의 체이블에 데이터를 나누어 저장해서 성능 향상을 얻을 수 있습니다. 아래를 단계를 따라 전체 N 개의 Kafka topic과 Pinot table을 생성하고, Pinpoint 컴포넌트들에 설정을 추가해서 data를 수집/조회합니다.
Kafka topic 생성
- N개 Kafka topic을 생성합니다. (00에서 N-1까지)
- topic의 형식은 다음과 같습니다.
- inspector-stat-agent-00
- inspector-stat-agent-01
- ...
- inspector-stat-agent-99
Pinot table 생성
- N개 Pinot table을 생성합니다. (00에서 N-1까지)
- 스크립트로 다수의 테이블 생성이 가능합니다.
- table name과 schema name의 형식은 다음과 같습니다.
- insepctorStatAgent00
- insepctorStatAgent01
- ...
- insepctorStatAgent99
collector-starter
모듈의 application.yml
파일이나 java vm option에 아래 설정을 추가해 주세요.
- application.yml
kafka:
inspector:
agent:
table:
count: N
- java vm option
-Dkafka.inspector.agent.topic.count=N
web-starter
모듈의 application.yml
파일이나 java vm option에 아래 설정을 추가해 주세요.
- application.yml
pinot:
inspector:
agent:
table:
count: N
- java vm option
-Dpinot.inspector.agent.topic.count=N
batch
모듈의 batch-root.properties
파일이나 java vm option에 아래 설정을 추가해 주세요.
- batch-root.properties
job.alarm.agent.inspector.stat.table.count=N
- java vm option
-Djob.alarm.agent.inspector.stat.table.count=N