Pinpoint
v2.5.0
v2.5.0
  • 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
    • How to use Application Inspector
    • 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
  • URI Statistics
  • 1. Installation and Configuration
  • 2. View Collected URI Statistics Data
  • URI ํ†ต๊ณ„
  • 1. ์„ค์น˜ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•
  • 2. URI ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ์กฐํšŒ

Was this helpful?

  1. Documents

URI Statistics

PreviousSystem MetricNextHow to use Application Inspector

Last updated 2 years ago

Was this helpful?

|

URI Statistics

URI statistics menu is newly added to Pinpoint in v2.5.0. Pinpoint Agent aggregates URI templates and send them to Pinpoint collector via GRPC. Pinpoint Collector saves the data to Pinot via Apache Kafka. Pinpoint Web accesses Pinot to display the data.

1. Installation and Configuration

1.1 Install and Run Kafka

1.2 Create Kafka Topics for Pinpoint URI Statistics

Create a topic with the name uri-stat

$ bin/kafka-topics.sh --create --topic uri-stat --bootstrap-server ${YOUR_KAFKA_SERVER_ADDRESS}

1.3 Install and Run Pinot

  • Above guide gives you the way to run Pinot locally, in Docker, and in Kubernetes.

1.4 Create Pinot Tables

  • Table uriStat should be created. Use pinot-uriStat-schema.json and pinot-uriStat-table.json to create the table.

1.5 Configure and Attach Pinpoint Agent

This section describes the URI stat configuration values added for URI statistics.

1.5.1 Configuration values for URI Statistics

Below are default agent configuration values for URI statistics.

###########################################################
# URI Stat
###########################################################
profiler.uri.stat.enable=true
profiler.uri.stat.spring.webmvc.enable=true
profiler.uri.stat.spring.webmvc.useuserinput=false
profiler.uri.stat.spring.webflux.enable=true
profiler.uri.stat.spring.webflux.useuserinput=false
profiler.uri.stat.vertx.enable=true
profiler.uri.stat.vertx.useuserinput=false
  • profiler.uri.stat.enable: whether Pinpoint Agent collects URI statistics or not.

    • true: collects URI statistics

    • false: doesn't collect URI statistics

  • profiler.uri.stat.spring.webmvc.enable: whether Pinpoint Agent collects URI statistics from Spring Web MVC applications.

    • true: collects URI statistics from Spring Web MVC applications.

    • false: doesn't collect URI statistics from Spring Web MVC applications.

  • profiler.uri.stat.spring.webmvc.useuserinput: whether Pinpoint Agent uses user-input request attribute values for URI templates when available.

    • true: uses user-input request attribute values.

    • false: ignores user-input request attribute values.

    Set attribute pinpoint.metric.uri-template to your Spring web request as shown below to override default URI template provided by Pinpoint.

      @RequestMapping("/testUserInputRequestAttribute")
      public Map<String, Object> testUserInputAttribute(HttpServletRequest request) {
          Map<String, Object> map = new HashMap<String, Object>();
          map.put("message", "test user input attribute");
          request.setAttribute("pinpoint.metric.uri-template", "/userInput");
          return map;
      }
  • profiler.uri.stat.spring.webflux.enable: whether Pinpoint Agent collects URI statistics from Spring Webflux applications.

    • true: collects URI statistics from Spring Webflux applications.

    • false: doesn't collect URI statistics from Spring Webflux applications.

  • profiler.uri.stat.spring.webflux.useuserinput: whether Pinpoint Agent uses user-input request attribute values for URI templates when available.

    • true: uses user-input request attribute values.

    • false: ignores user-input request attribute values.

    Set attribute pinpoint.metric.uri-template to your Spring web request as shown below to override default URI template provided by Pinpoint.

      @GetMapping("/server/welcome/**")
      public Mono<String> welcome(ServerWebExchange exchange) {
          exchange.getAttributes().put("pinpoint.metric.uri-template", "/test");
          return Mono.just("Welcome Home");
      }
  • profiler.uri.stat.vertx.enable: whether Pinpoint Agent collects URI statistics from Vert.x applications.

    • true: collects URI statistics from Vert.x applications.

    • false: doesn't collect URI statistics from Vert.x applications.

  • profiler.uri.stat.vertx.useuserinput: whether Pinpoint Agent uses user-input routing context attribute values for URI templates when available.

    • true: uses user-input routing context attribute values.

    • false: ignores user-input routing context attribute values.

    Set attribute pinpoint.metric.uri-template to your Vert.x routing context as shown below to override default URI template provided by Pinpoint.

      router.get("/routinContextAttributeAdded").handler(routingContext -> {
          routingContext.put("pinpoint.metric.uri-template", "/test");
          routingContext.response().end("pinpoint.metric.uri-tempate = /test");
      });

1.6 Configure and Run Pinpoint Collector & Web with URI Statistics

Instead of the default Pinpoint Collector and Web binaries, you should use those compiled under metric-module.

  • collector.stat.uri=true
  • pinpoint.collector.type=METRIC argument should be used to collect URI statistics in collector.

  • config.show.urlStat=true

2. View Collected URI Statistics Data

  1. Click URL Statistic on the side bar menu in Pinpoint web.

  2. Search for the application name you used to configure Pinpoint Agent.

  3. Top 50 URIs used in your application will be displayed below the empty chart.

  4. Click each URI to load the chart.

URI ํ†ต๊ณ„

URI ํ†ต๊ณ„ ๊ธฐ๋Šฅ์€ ํ•€ํฌ์ธํŠธ v2.5.0์— ์‹ ๊ทœ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ์—์„œ URI ํ…œํ”Œ๋ฆฟ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ GRPC๋ฅผ ์‚ฌ์šฉํ•ด ํ•€ํฌ์ธํŠธ ์ฝœ๋ ‰ํ„ฐ์— ์ „๋‹ฌํ•˜๊ณ , ํ•€ํฌ์ธํŠธ ์ฝœ๋ ‰ํ„ฐ๋Š” ์•„ํŒŒ์น˜ ์นดํ”„์นด๋ฅผ ํ†ตํ•ด ์•„ํŒŒ์น˜ ํ”ผ๋…ธ์— ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ํ•€ํฌ์ธํŠธ ์›น์—์„œ ์ €์žฅ๋œ URI ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

1. ์„ค์น˜ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•

1.1 ์นดํ”„์นด ์„ค์น˜ ๋ฐ ์‹คํ–‰

1.2 ์นดํ”„์นด ํ† ํ”ฝ ์ƒ์„ฑ

์•„๋ž˜์™€ ๊ฐ™์ด uri-stat ํ† ํ”ฝ์„ ์ƒ์„ฑํ•œ๋‹ค.

$ bin/kafka-topics.sh --create --topic uri-stat --bootstrap-server ${YOUR_KAFKA_SERVER_ADDRESS}

1.3 ํ”ผ๋…ธ ์„ค์น˜ ๋ฐ ์‹คํ–‰

  • ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ (local, docker, kubernetes)์—์„œ ํ”ผ๋…ธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์œ„ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

1.4 ํ”ผ๋…ธ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

  • ์œ„ ๊ฒฝ๋กœ์—์„œ pinot-uriStat-schema.json ์™€ pinot-uriStat-table.json๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ uriStat ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.

1.5 ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ ์„ค์ •

URI ํ†ต๊ณ„ ์ˆ˜์ง‘์„ ์œ„ํ•ด ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ์— ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฐ’๋“ค์„ ์•ˆ๋‚ดํ•œ๋‹ค.

1.5.1 URI ํ†ต๊ณ„ ์ˆ˜์ง‘์„ ์œ„ํ•œ ์„ค์ • ๊ฐ’

URI ํ†ต๊ณ„ ์ˆ˜์ง‘๊ณผ ๊ด€๋ จ๋œ ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ์˜ ์„ค์ • ๊ธฐ๋ณธ๊ฐ’๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

###########################################################
# URI Stat
###########################################################
profiler.uri.stat.enable=true
profiler.uri.stat.spring.webmvc.enable=true
profiler.uri.stat.spring.webmvc.useuserinput=false
profiler.uri.stat.spring.webflux.enable=true
profiler.uri.stat.spring.webflux.useuserinput=false
profiler.uri.stat.vertx.enable=true
profiler.uri.stat.vertx.useuserinput=false
  • profiler.uri.stat.enable: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

    • false: URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • profiler.uri.stat.spring.webmvc.enable: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ ์Šคํ”„๋ง ์›น MVC ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: ์Šคํ”„๋ง ์›น MVC ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํžŒ๋‹ค.

    • false: ์Šคํ”„๋ง ์›น MVC ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • profiler.uri.stat.spring.webmvc.useuserinput: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    • false: ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ํ•€ํฌ์ธํŠธ๊ฐ€ ์ˆ˜์ง‘ํ•œ ํ…œํ”Œ๋ฆฟ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

    ํ•€ํฌ์ธํŠธ์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์Šคํ”„๋ง ์›น ๋ฆฌํ€˜์ŠคํŠธ ๊ฐ์ฒด attribute์— pinpoint.metric.uri-template๋ฅผ key ๊ฐ’์œผ๋กœ ํ•˜๋Š” ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

      @RequestMapping("/testUserInputRequestAttribute")
      public Map<String, Object> testUserInputAttribute(HttpServletRequest request) {
          Map<String, Object> map = new HashMap<String, Object>();
          map.put("message", "test user input attribute");
          request.setAttribute("pinpoint.metric.uri-template", "/userInput");
          return map;
      }
  • profiler.uri.stat.spring.webflux.enable: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํžŒ๋‹ค.

    • false: ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • profiler.uri.stat.spring.webflux.useuserinput: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    • false: ์Šคํ”„๋ง ์›นํ”Œ๋Ÿญ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ํ•€ํฌ์ธํŠธ๊ฐ€ ์ˆ˜์ง‘ํ•œ ํ…œํ”Œ๋ฆฟ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

    ํ•€ํฌ์ธํŠธ์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์Šคํ”„๋ง ์›น ๋ฆฌํ€˜์ŠคํŠธ ๊ฐ์ฒด attribute์— pinpoint.metric.uri-template๋ฅผ key ๊ฐ’์œผ๋กœ ํ•˜๋Š” ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

      @GetMapping("/server/welcome/**")
      public Mono<String> welcome(ServerWebExchange exchange) {
          exchange.getAttributes().put("pinpoint.metric.uri-template", "/test");
          return Mono.just("Welcome Home");
      }
  • profiler.uri.stat.vertx.enable: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํžŒ๋‹ค..

    • false: Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • profiler.uri.stat.vertx.useuserinput: ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๊ฐ€ Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

    • true: Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    • false: Vert.x ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ํ•€ํฌ์ธํŠธ๊ฐ€ ์ˆ˜์ง‘ํ•œ ํ…œํ”Œ๋ฆฟ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

    ํ•€ํฌ์ธํŠธ์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ URI ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด Vert.x RoutingContext ๊ฐ์ฒด์— pinpoint.metric.uri-template ๋ฅผ key ๊ฐ’์œผ๋กœ ํ•˜๋Š” ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

      router.get("/routinContextAttributeAdded").handler(routingContext -> {
          routingContext.put("pinpoint.metric.uri-template", "/test");
          routingContext.response().end("pinpoint.metric.uri-tempate = /test");
      });

1.6 ํ•€ํฌ์ธํŠธ ์ฝœ๋ ‰ํ„ฐ์™€ ํ•€ํฌ์ธํŠธ ์›น ์„ค์ • ๋ฐ ์‹คํ–‰

URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ฐ’์„ ํ™•์ธํ•˜๋ ค๋ฉด, ํ•€ํฌ์ธํŠธ v2.5.0 ์ด์ „ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์ฝœ๋ ‰ํ„ฐ์™€ ์›น JAR ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ metric-module ๋ฐ‘์— ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • collector.stat.uri=true
  • URI ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ pinpoint.collector.type=METRIC argument๋ฅผ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

  • config.show.urlStat=true

2. URI ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ์กฐํšŒ

  1. ํ•€ํฌ์ธํŠธ ๋ฉ”ํŠธ๋ฆญ ์›น์„ ์‹คํ–‰ํ•˜์—ฌ ์™ผ์ชฝ URL Statistic ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ๋‹ค.

  2. ์ƒ๋‹จ์˜ seslect box์—์„œ ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ์— ์„ค์ •ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„์„ ์กฐํšŒํ•œ๋‹ค..

  3. ์ดˆ๊ธฐ ํ™”๋ฉด์—์„œ๋Š” ์„ ํƒํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•œ ์ƒ์œ„ 50๊ฐœ URI๊ฐ€ ๋นˆ ์ฐจํŠธ ๋ฐ‘์— ํ‘œ์‹œ๋œ๋‹ค.

  4. ์›ํ•˜๋Š” URI๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ฐจํŠธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.

Kafka enables real-time streaming of URI statistics data from Pinpoint collector to Pinot. If you have already , please skip this step.

Please refer to to get Kafka and start the Kafka environment.

This section describes how to install Pinot which is used in Pinpoint to save URI statistics data. If you have already , please skip this step.

Install Pinot according to .

Pinot table schema for Pinpoint URI statistics is provided in .

Please refer to to create necessary tables in your Pinot cluster.

To change the configuration values described above, update pinpoint.config under and rebuild the project. Or, you can simply pass these properties when starting your application with Pinpoint Agent (e.g. -Dprofiler.uri.stat.enable=false).

Please check for Pinpoint Metric Collector properties.

Enable URI statistics by adding the below line at :

Please check for Pinpoint Metric Web properties.

Enable URI statistics by adding the below line at :

์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•€ํฌ์ธํŠธ ์ฝœ๋ ‰ํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ํ”ผ๋…ธ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์นดํ”„์นด๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฏธ ํ•˜์˜€๋‹ค๋ฉด, ์ด ๋ถ€๋ถ„์€ ๊ฑด๋„ˆ๋›ฐ์‹ญ์‹œ์˜ค.

๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ kafka๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

URI ํ†ต๊ณ„ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํ”ผ๋…ธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฒ•์„ ์•ˆ๋‚ดํ•œ๋‹ค. ์ด๋ฏธ ํ•˜์˜€๋‹ค๋ฉด, ์ด ๋ถ€๋ถ„์€ ๊ฑด๋„ˆ๋›ฐ์‹ญ์‹œ์˜ค.

๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ”ผ๋…ธ๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

์— URI ํ†ต๊ณ„๋ฅผ ์œ„ํ•œ ํ”ผ๋…ธ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ์™€ ํ…Œ์ด๋ธ” ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.

ํ”ผ๋…ธ์— ํ•„์š”ํ•œ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

์œ„ ์„ค์ • ๊ฐ’๋“ค์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์›ํ•˜๋Š” ์˜ pinpoint.config ํŒŒ์ผ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•€ํฌ์ธํŠธ๋ฅผ ์žฌ๋นŒ๋“œํ•œ๋‹ค. ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ , ํ•€ํฌ์ธํŠธ ์—์ด์ „ํŠธ๋ฅผ ๋ถ™ํž ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ -Dprofiler.uri.stat.enable=false์™€ ๊ฐ™์ด ๊ฐ’์„ ๋„ฃ์–ด๋„ ๋œ๋‹ค.

์— ์ž์„ธํ•œ ์„ค๋ช…์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด์„œ ๋ฉ”ํŠธ๋ฆญ ์ฝœ๋ ‰ํ„ฐ ์„ค์ •๊ฐ’์„ ์„ธํŒ…ํ•˜์ž.

์œ„ ์„ค์ • ์™ธ์— URI ํ†ต๊ณ„๋ฅผ ์œ„ํ•ด ์— ์•„๋ž˜ ์„ค์ •๊ฐ’์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค:

์— ์ž์„ธํ•œ ์„ค๋ช…์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด์„œ ๋ฉ”ํŠธ๋ฆญ ์›น ์„ค์ •๊ฐ’์„ ์„ธํŒ…ํ•˜์ž.

์œ„ ์„ค์ • ์™ธ์— URI ํ†ต๊ณ„๋ฅผ ์œ„ํ•ด ์— ์•„๋ž˜ ์„ค์ •๊ฐ’์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค:

set up Kafka for Pinpoint System Metric
this document
set up Pinot for Pinpoint System Metric
Pinot Getting Started guide
our github repository
Pinot documents
each profile directory
here
pinpoint-collector.properties
here
pinpoint-web-metric.properties
์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ ์„ค์ •์„ ํ•˜๋ฉด์„œ ์นดํ”„์นด๋ฅผ ์„ค์น˜
์„ค์น˜ ๋ฐฉ๋ฒ• ๊ฐ€์ด๋“œ
์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ ์„ค์ •์„ ํ•˜๋ฉด์„œ ํ”ผ๋…ธ๋ฅผ ์„ค์น˜
ํ”ผ๋…ธ ์„ค์น˜ ๊ฐ€์ด๋“œ
ํ•€ํฌ์ธํŠธ ๊นƒํ—™ ์ €์žฅ์†Œ
ํ”ผ๋…ธ ๊ณต์‹ ๋ฌธ์„œ
ํ•€ํฌ์ธํŠธ ํ”„๋กœํŒŒ์ผ ๊ฒฝ๋กœ
ํ•€ํฌ์ธํŠธ ๋ฉ”ํŠธ๋ฆญ ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์„ค๋ช…ํ•œ ๋ฌธ์„œ
pinpoint.collector.properties
ํ•€ํฌ์ธํŠธ ๋ฉ”ํŠธ๋ฆญ ์›น์„ ์„ค๋ช…ํ•œ ๋ฌธ์„œ
pinpoint-web-metric.properties
English
ํ•œ๊ธ€