Pinpoint
v2.5.4
v2.5.4
  • Introduction
  • What's New
  • Want a quick tour?
    • Overview
    • History
    • Tech Details
    • Videos
    • Additional Plugins
  • Getting Started
    • Quick-start guide
      • quickstart.Win.en
      • quickstart.Win.ko
    • Installation guide
    • Install with Docker
    • TrobleShooting(Network)
  • Documents
    • Plugin Developer Guide
    • Setting Alarm
    • System Metric
    • URI Statistics
    • URI Statistics Alarm
    • How to use Application Inspector
    • Realtime Request Monitoring
    • Separate Logging Per Request
    • Marking Transaction as Fail
    • Monitoring Proxy Server
    • Upgrade Database Hbase2
  • Contribution
    • Contribution
    • Open to Contribution
  • Performance Analysis
  • Twitter
  • Release Notes
  • FAQ
  • Powered by Pinpoint
  • Questions & answers
  • Fork me at Github
  • Earlier documents
  • Resources
Powered by GitBook
On this page
  • Application Inspector
  • 1. Introduction
  • 2. Architecture
  • 3. Configuration
  • 4. Monitoring Streaming Jobs
  • 5. Others
  • Application Inspector
  • 1. ๊ธฐ๋Šฅ ์„ค๋ช…
  • 2. ๋™์ž‘ ๊ตฌ์กฐ
  • 3. ๊ธฐ๋Šฅ ์‹คํ–‰ ๋ฐฉ๋ฒ•
  • 4. streaming job ๋™์ž‘ ํ™•์ธ ๋ชจ๋‹ˆํ„ฐ๋ง batch
  • 5. ๊ธฐํƒ€

Was this helpful?

  1. Documents

How to use Application Inspector

PreviousURI Statistics AlarmNextRealtime Request Monitoring

Was this helpful?

|

Application Inspector

1. Introduction

Application inspector provides an aggregate view of all the agent's resource data (cpu, memory, tps, datasource connection count, etc) registered under the same application name. A separate view is provided for the application inspector with stat charts similar to the agent inspector.

To access application inspector, click on the application inspector menu on the left side of the screen.

  • 1 : application inspector menu, 2 : application stat data

The Heap Usage chart above for example, shows the average(Avg), smallest(Min), greatest(Max) heap usage of the agents registered under the same application name along with the id of the agent that had the smallest/greatest heap usage at a certain point in time. The application inspector also provides other statistics found in the agent inspector in a similar fashion.

2. Architecture

3. Configuration

In order to enable application inspector, you will need to do the following and run Pinpoint.

    flink.cluster.enable=true
    flink.cluster.zookeeper.address=YOUR_ZOOKEEPER_ADDRESS
    flink.cluster.zookeeper.sessiontimeout=3000
    flink.cluster.zookeeper.retry.interval=5000
    flink.cluster.tcp.port=19994
  • If you are running a flink cluster, set flink.StreamExecutionEnvironment to server.

  • If you are running flink as a standalone, set flink.StreamExecutionEnvironment to local.

      flink.StreamExecutionEnvironment=server
    hbase.client.host=YOUR_HBASE_ADDRESS
    hbase.client.port=2181
  • The name of the streaming job is pinpoint-flink-job-{pinpoint.version}.jar.

  • You must put spring.profiles.active release orspring.profiles.active local as the job parameter so that the job can refer to the configuration file configured above when running. It must be entered because it uses the spring profile function inside the job to refer to the configuration file.

    flink.cluster.enable=true
    flink.cluster.zookeeper.address=YOUR_ZOOKEEPER_ADDRESS
    flink.cluster.zookeeper.sessiontimeout=3000
    config.show.applicationStat=true

4. Monitoring Streaming Jobs

There is a batch job that monitors how Pinpoint streaming jobs are running. To enable this batch job, configure the following files for Pinpoint-web.

batch.properties

batch.flink.server=FLINK_MANGER_SERVER_IP_LIST
# Flink job manager server IPs, separated by ','.
# ex) batch.flink.server=123.124.125.126,123.124.125.127

applicationContext-batch-schedule.xml

<task:scheduled-tasks scheduler="scheduler">
    ...
    <task:scheduled ref="batchJobLauncher" method="flinkCheckJob" cron="0 0/10 * * * *" />
</task:scheduled-tasks>

If you would like to send alarms in case of batch job failure, you must implement com.navercorp.pinpoint.web.batch.JobFailMessageSender class and register it as a Spring bean.

5. Others

Application Inspector

1. ๊ธฐ๋Šฅ ์„ค๋ช…

application inspector ๊ธฐ๋Šฅ์€ agent๋“ค์˜ ๋ฆฌ์†Œ์Šค ๋ฐ์ดํ„ฐ(stat : cpu, memory, tps, datasource connection count)๋ฅผ ์ง‘๊ณ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ฐธ๊ณ ๋กœ application์€ agent์˜ ๊ทธ๋ฃน์œผ๋กœ ์ด๋ค„์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  agent์˜ ๋ฆฌ์†Œ์Šค ๋ฐ์ดํ„ฐ๋Š” agent inspector ํ™”๋ฉด์—์„œ ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. application inspector ๊ธฐ๋Šฅ ๋˜ํ•œ ๋ณ„๋„์˜ ํ™”๋ฉด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

inspector ํ™”๋ฉด ์™ผ์ชฝ ๋ฉ”๋‰ด์˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด application inspector ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • 1 : application inspector menu, 2: application stat data

์˜ˆ๋ฅผ๋“ค๋ฉด A๋ผ๋Š” application์— ํฌํ•จ๋œ agent๋“ค์˜ heap ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ์•„์„œ heap ์‚ฌ์šฉ๋Ÿ‰ ํ‰๊ท ๊ฐ’ , heap ์‚ฌ์šฉ๋Ÿ‰์˜ ํ‰๊ท ๊ฐ’, heap ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ๋†’์€ agentid์™€ ์‚ฌ์šฉ๋Ÿ‰, heap ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ์ ์€ agentid์™€ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ค€๋‹ค. ์ด์™ธ์—๋„ agent inspector ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค๋„ ์ง‘๊ณ„ํ•˜์—ฌ application inspector์—์„œ ์ œ๊ณตํ•œ๋‹ค.

2. ๋™์ž‘ ๊ตฌ์กฐ

application inspector ๊ธฐ๋Šฅ์˜ ๋™์ž‘ ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ๋ณด์ž.

3. ๊ธฐ๋Šฅ ์‹คํ–‰ ๋ฐฉ๋ฒ•

application inspector ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  Pinpoint๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

    flink.cluster.enable=true
    flink.cluster.zookeeper.address=YOUR_ZOOKEEPER_ADDRESS
    flink.cluster.zookeeper.sessiontimeout=3000
    flink.cluster.zookeeper.retry.interval=5000
    flink.cluster.tcp.port=19994
  • flink๋ฅผ cluster๋กœ ๊ตฌ์ถ•ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด _flink.StreamExecutionEnvironment_์—๋Š” server๋ฅผ ์„ค์ •ํ•œ๋‹ค.

  • flink๋ฅผ Standalone ํ˜•ํƒœ๋กœ ์‹คํ–‰ํ•œ๋‹ค๋ฉด _flink.StreamExecutionEnvironment_์—๋Š” local์„ ์„ค์ •ํ•œ๋‹ค.

    flink.StreamExecutionEnvironment=server
    flink.sourceFunction.Parallel=1
    hbase.client.host=YOUR_HBASE_ADDRESS
    hbase.client.port=2181
  • streaming job ํŒŒ์ผ ์ด๋ฆ„์€ pinpoint-flink-job-{pinpoint.version}.jar ์ด๋‹ค.

  • ๋ฐ˜๋“œ์‹œ ์‹คํ–‰์‹œ job์ด ์œ„์—์„œ ์„ค์ •ํ•œ ์„ค์ •ํŒŒ์ผ์„ ์ฐธ๊ณ  ํ• ์ˆ˜ ์žˆ๋„๋ก job parameter๋กœ spring.profiles.active release or spring.profiles.active local๋ฅผ ๋„ฃ์–ด์ฃผ์•ผ ํ•œ๋‹ค. job ๋‚ด๋ถ€์—์„œ spring profile ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํŒŒ์ผ์„ ์ฐธ๊ณ  ํ•˜๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค.

    flink.cluster.enable=true
    flink.cluster.zookeeper.address=YOUR_ZOOKEEPER_ADDRESS
    flink.cluster.zookeeper.sessiontimeout=3000

G. web์—์„œ application inspector ๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„ค์ •ํŒŒ์ผ(pinpoint-web.properties)์„ ์ˆ˜์ •ํ•œ๋‹ค.

    config.show.applicationStat=true

4. streaming job ๋™์ž‘ ํ™•์ธ ๋ชจ๋‹ˆํ„ฐ๋ง batch

Pinpoint streaming job์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” batch job์ด ์žˆ๋‹ค. batch job์„ ๋™์ž‘ ์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด Pinpoint web ํ”„๋กœ์ ํŠธ์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

batch.properties

batch.flink.server=FLINK_MANGER_SERVER_IP_LIST
#`batch.flink.server` ์†์„ฑ ๊ฐ’์— flink job manager ์„œ๋ฒ„ IP๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์„œ๋ฒ„ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌ๋ถ„์ž๋Š” ','์ด๋‹ค.
# ex) batch.flink.server=123.124.125.126,123.124.125.127

applicationContext-batch-schedule.xml

<task:scheduled-tasks scheduler="scheduler">
    ...
    <task:scheduled ref="batchJobLauncher" method="flinkCheckJob" cron="0 0/10 * * * *" />
</task:scheduled-tasks>

batch job์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ ์•Œ๋žŒ์ด ์ „์†ก๋˜๋„๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด com.navercorp.pinpoint.web.batch.JobFailMessageSender class ๊ตฌํ˜„์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  bean์œผ๋กœ ๋“ฑ๋กํ•˜๋ฉด ๋œ๋‹ค.

5. ๊ธฐํƒ€

Application inspector requires and . Please read on for more detail.

A. Run a streaming job on . B. The taskmanager server is registered to zookeeper as a data node once the job starts. C. The Collector obtains the flink server info from zookeeper to create a tcp connection with it and starts sending agent data. D. The flink server aggregates data sent by the Collector and stores them into hbase.

A. Create ApplicationStatAggre table (refer to ), which stores application stat data.

B. Configure zookeeper address in which will be used to store flink's taskmanager server information.

C. Configure job execution type and the number of listeners to receive data from the Collector in .

D. Configure hbase address in which will be used to store aggregated application data.

E. Build and run the streaming job file created under target directory on the flink server.

For details on how to run the job, please refer to the .

F. Configure zookeeper address in so that the Collector can connect to the flink server.

G. Enable application inspector in the web-ui by enabling the following configuration in .

For more details on how to install and operate flink, please refer to the .

application inspector ๊ธฐ๋Šฅ์„ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์™€ ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๊ธฐ๋Šฅ์˜ ๋™์ž‘ ๊ตฌ์กฐ์™€ ๊ตฌ์„ฑ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์•„๋ž˜ ์„ค๋ช…ํ•œ๋‹ค.

A. ์— streaming job์„ ์‹คํ–‰์‹œํ‚จ๋‹ค. B. job์ด ์‹คํ–‰๋˜๋ฉด taskmanager ์„œ๋ฒ„์˜ ์ •๋ณด๊ฐ€ zookeeper์˜ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋กœ ๋“ฑ๋ก์ด ๋œ๋‹ค. C. Collector๋Š” zookeeper์—์„œ flink ์„œ๋ฒ„์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ flink ์„œ๋ฒ„์™€ tcp ์—ฐ๊ฒฐ์„ ๋งบ๊ณ  agent stat ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. D. flink ์„œ๋ฒ„์—์„œ๋Š” agent ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜์—ฌ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ hbase์— ์ €์žฅํ•œ๋‹ค.

A. ํ•˜์—ฌ application ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ApplicationStatAggre ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.

B. flink ํ”„๋กœ์ ํŠธ ์„ค์ •ํŒŒ์ผ()์— taskmanager ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” zookeeper ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

C. flink ํ”„๋กœ์ ํŠธ ์„ค์ •ํŒŒ์ผ()์— job์˜ ์‹คํ–‰ ๋ฐฉ๋ฒ•๊ณผ Collector์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” listener์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.

D. flink ํ”„๋กœ์ ํŠธ ์„ค์ •ํŒŒ์ผ()์— ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” hbase ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

E. ๋ฅผ ๋นŒ๋“œํ•˜์—ฌ target ํด๋” ํ•˜์œ„์— ์ƒ์„ฑ๋œ streaming job ํŒŒ์ผ์„ flink ์„œ๋ฒ„์— job์„ ์‹คํ–‰ํ•œ๋‹ค.

์‹คํ–‰๋ฐฉ๋ฒ•์€ ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

F. Collector์—์„œ flink์™€ ์—ฐ๊ฒฐ์„ ๋งบ์„ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํŒŒ์ผ()์— zookeeper ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

์ž์„ธํ•œ flink ์šด์˜ ์„ค์น˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

flink
zookeeper
flink
create table script
Pinpoint-flink.properties
Pinpoint-flink.properties
hbase.properties
Pinpoint-flink
flink website
Pinpoint-Collector.properties
pinpoint-web.properties
flink website
flink
zookeeper
flink
ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฐธ์กฐ
Pinpoint-flink.properties
Pinpoint-flink.properties
hbase.properties
flink ํ”„๋กœ์ ํŠธ
flink ์‚ฌ์ดํŠธ
Pinpoint-Collector.properties
flink ์‚ฌ์ดํŠธ
English
ํ•œ๊ธ€
graph.jpg
execute_flow.jpg
graph.jpg
execute_flow.jpg
inspector_view.jpg
inspector_view.jpg