Metatron-discovery: Introduce engine(druid) monitoring function

Created on 1 Feb 2019  Β·  21Comments  Β·  Source: metatron-app/metatron-discovery

Is your feature request related to a problem? Please describe.
We should consider creating an administration tool to figure out how to manage druid better.

Describe the solution you'd like

  • Overview : We should be able to check the server status in Druid cluster and get comprehensive statistics.
    image
  • Ingestion : We should be able to check the status of the ingestion tasks(include supervisors).
    image

β€» Additional features will be released in the 3.4 pre-release :)

new feature p1 @engine-monitoring

All 21 comments

@AnnieHwang λ””μžμΈ κ³΅μœ λ“œλ¦½λ‹ˆλ‹€

  1. Overview list
    image
  1. Druid Cluster Information > common
    image

@AnnieHwang, @koeun222 λͺ¨λ‹ˆν„°λ§ ν•­λͺ© 듀은 ꡬ체화될 μ˜ˆμ •μΈκ±°μ£ ? ppt νŒŒμΌμ— λ‚΄μš©μ€ κ·Έλƒ₯ property 정도 인 λ“― ν•˜λ„€μš”~

@Taehui
일정이 μ΄‰λ°•ν•˜μ—¬ μš°μ„  κ΅¬ν˜„ν•  수 μžˆλ„λ‘ λ‚΄μš©μ„ 많이 μΆ•μ†Œν•˜μ—¬ μ΄μŠˆλ“±λ‘μ„ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
Overview화면은 μ’€ 더 보완/개편될 μ˜ˆμ •μž…λ‹ˆλ‹€.

@AnnieHwang @koeun222
Cluster 정보 νŒμ—… 화면이 μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
각각의 nodeλ³„λ‘œ 탭을 κ΅¬μ„±ν•˜κΈ° μ–΄λ €μš΄ 뢀뢄이 μžˆμ–΄ μ‚­μ œν•˜κ³ 
ν•œ 화면에 Cluster의 전체 정보λ₯Ό λ‹΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ°Έκ³  λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.
2019-02-12 3 23 29

μ™€μ΄μ–΄ν”„λ ˆμž„:
#1373_EngineMornitoringOverview_20190212.pptx

@deidera08 μ—”μ§„ λͺ¨λ‹ˆν„°λ§ 메뉴 μˆœμ„œ 확인 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€


2019-02-15 2 05 21


  • 이슈 μ½”λ©˜νŠΈμ—λŠ” 데이터 μŠ€ν† λ¦¬μ§€ λ‹€μŒμ— 좔가해달라고 ν•˜μ…¨λŠ”λ°

2019-02-15 2 03 44

  • κΈ°νšμ„œμ—λŠ” μ—”μ§„ λͺ¨λ‹ˆν„°λ§μ΄ 데이터 λͺ¨λ‹ˆν„°λ§ λ‹€μŒμ— μžˆμŠ΅λ‹ˆλ‹€. μ΄μŠˆμ— μ μ–΄μ£Όμ‹ λŒ€λ‘œ 데이터 μŠ€ν† λ¦¬μ§€ λ‹€μŒμ— μ—”μ§„ λͺ¨λ‹ˆν„°λ§ 메뉴 μΆ”κ°€ν•˜λ©΄ λ κΉŒμš”?

@ninezero90hy
μ œκ°€ μ΄μŠˆμ— 잘λͺ»μ μ—ˆλ„€μš”. ν˜Όλ™μ„ λ“œλ €μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.
ν‘œμ— λ‚˜μ—΄ν•œλŒ€λ‘œ Management ν•˜μœ„μ— Data Storage와 λ™μΌν•œ Depth둜 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.

@deidera08 λ„΅ 확인 κ°μ‚¬ν•©λ‹ˆλ‹€ :)

@ninezero90hy
λ„ˆλ¬΄ μ§€μ—°λ˜κ³  μžˆμ–΄μ„œ μš°μ„  Overview ν™”λ©΄μ—μ„œμ˜ 쑰회용 API λ¨Όμ € 곡유 λ“œλ¦½λ‹ˆλ‹€ 😭
κΆκΈˆν•˜μ‹œκ±°λ‚˜ 더 ν•„μš”ν•˜μ‹  것 μžˆλ‹€λ©΄ λ§μ”€ν•΄μ£Όμ„Έμš”.

  1. Overview - μ„œλ²„ νƒ€μž…λ³„ μƒνƒœ 쑰회
  2. request :(GET) /api/monitoring/servers/health
  3. response body :
{
    "coordinator": "true",
    "historical": "true",
    "middleManager": "true",
    "broker": "warn",
    "overlord": "true"
}
  1. Overview - 전체 μ„œλ²„ λͺ©λ‘ 쑰회 (μƒνƒœ 포함)
  2. request :(GET) /api/monitoring/
  3. response body :
{
    "_embedded": {
        "monitorings": [
            {
                "id": "a2ba4b2d-90ac-4b7e-9abe-e67407f229c0",
                "type": "overlord",
                "port": "8090",
                "hostname": "localhost",
                "status": "true",
                "_links": {
                    "self": {
                        "href": "http://localhost:8180/api/monitoring/a2ba4b2d-90ac-4b7e-9abe-e67407f229c0"
                    },
                    "monitoring": {
                        "href": "http://localhost:8180/api/monitoring/a2ba4b2d-90ac-4b7e-9abe-e67407f229c0{?projection}",
                        "templated": true
                    }
                }
            },
            {
                "id": "c569271e-b6a7-4dfe-b133-492bcdcb1622",
                "type": "middleManager",
                "port": "8091",
                "hostname": "localhost",
                "status": "true",
                "_links": {
                    "self": {
                        "href": "http://localhost:8180/api/monitoring/c569271e-b6a7-4dfe-b133-492bcdcb1622"
                    },
                    "monitoring": {
                        "href": "http://localhost:8180/api/monitoring/c569271e-b6a7-4dfe-b133-492bcdcb1622{?projection}",
                        "templated": true
                    }
                }
            }
        ]
    },
    "_links": {
        "self": {
            "href": "http://localhost:8180/api/monitoring{?page,size,sort,projection}",
            "templated": true
        },
        "profile": {
            "href": "http://localhost:8180/api/profile/monitoring"
        }
    },
    "page": {
        "size": 20,
        "totalElements": 5,
        "totalPages": 1,
        "number": 0
    }
}
  1. Overview - 차트 쑰회
  2. request :(POST) /api/monitoring/query
  3. request body :
{
    "fromDate": string,
    "toDate": string,
    "granularity": string,
    "monitoringTarget": object,
    "resultFormat": object
}

resultFormat은 κΈ°μ‘΄κ³Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.
monitoringTarget의 경우 filterλ₯Ό κ°„λ‹¨ν•˜κ²Œ μ μš©ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ°’μœΌλ‘œ

"monitoringTarget": {
        "service": string,
        "host": string,
        "metric": string
    }

ν˜•νƒœλ‘œ 이루어지며, metric이 κ°€μ§ˆ 수 μžˆλŠ” 값은 μ•„λž˜ 4κ°€μ§€ μž…λ‹ˆλ‹€.
"MEM_MAX"
"MEM_USED"
"GC_CPU"
"GC_COUNT"

  • response body :
{
    "rows": [
        "2019-02-25",
        "2019-02-26",
        "2019-02-27"
    ],
    "categories": [],
    "columns": [
        {
            "name": "value",
            "value": [
                19889536890762,
                23987421705677,
                6886588415250
            ],
            "percentage": []
        }
    ],
    "info": {
        "maxValue": 23987421705677,
        "minValue": 6886588415250
    }
}

@alchan-lee
μ•ˆλ…•ν•˜μ„Έμš”. Engine Monitoring을 맑게된 μ„œμ„±μ€€ μž…λ‹ˆλ‹€.

ν˜„μž¬ Localμ—μ„œ λ§Œλ“€μ–΄μ£Όμ‹  api호좜 ν•˜μ˜€λ”λ‹ˆ 데이터가 μ—†μŠ΅λ‹ˆλ‹€.
μƒ˜ν”Œλ°μ΄ν„° 넣을렀면 μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?

@alchan-lee
λ‹€μŒ API 호좜 μ‹œ μ„œλ²„λͺ…, node, μƒνƒœ λ“± ν•„ν„° κΈ°λŠ₯을 μΆ”κ°€ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Overview - 전체 μ„œλ²„ λͺ©λ‘ 쑰회 (μƒνƒœ 포함)
request :(GET) /api/monitoring/

@nogah12
확인이 λŠ¦μ–΄μ§„ 점 μ£„μ†‘ν•©λ‹ˆλ‹€..

λ§μ”€ν•˜μ‹  API μ μš©λ˜λŠ”λŒ€λ‘œ 곡유 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

@nogah12
μ•„.. μ œκ°€ ν—·κ°ˆλ Έκ΅°μš” γ… γ… 
λ§μ”€ν•˜μ‹  API에 parameter둜 쑰건을 μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.

μ μš©κ°€λŠ₯ν•œ 값은 μ•„λž˜ 5κ°€μ§€ μž…λ‹ˆλ‹€.
id, type, port, hostname, status

ex)
(GET) /api/monitoring?id=305a3d69-2693-48cf-9dd0-c343476b589a
(GET) /api/monitoring?type=broker
(GET) /api/monitoring?port=8081
(GET) /api/monitoring?hostname=localhost
(GET) /api/monitoring?status=true

그리고 μ²˜μŒμ— λ§μ”€ν•˜μ‹  μƒ˜ν”Œλ°μ΄ν„°λŠ” λ³„λ„λ‘œ μƒμ„±ν•˜μ‹€ ν•„μš”μ—†κ³ 
10λΆ„ 주기둜 섀정을 νŒŒμ‹±ν•΄μ„œ μ—…λ°μ΄νŠΈ ν•˜κ²Œ ν•΄λ‘μ—ˆμŠ΅λ‹ˆλ‹€.

별도 섀정이 μ—†λ‹€λ©΄ application.yaml νŒŒμΌμ„ μ°Έκ³ ν•΄μ„œ localhost 정보λ₯Ό μž…λ ₯ν•˜κ²Œ λ˜λ‹ˆ
λ‘œμ»¬μ— druidλ₯Ό μ‹€ν–‰ν•˜μ‹  λ’€ ν…ŒμŠ€νŠΈν•˜μ…”μ•Ό ν•©λ‹ˆλ‹€

@alchan-lee
λ‘œμ»¬μ— druidλ₯Ό μ‹€ν–‰ ν•˜μ˜€κ³  μ„œλ²„μ—μ„œ
EngineMonitoringJob : ########### engine monitoring job : check server health
μ‹€ν–‰λ˜λŠ”κ²ƒλ„ 확인 ν•˜μ˜€μ§€λ§Œ polaris.engine_monitoring ν…Œμ΄λΈ”μ— 데이터가 μ μž¬κ°€ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έκ²ƒλ„ 확인해야 λ˜λ‚˜μš”?

@alchan-lee 이 이슈 μ€‘μ‹¬μœΌλ‘œ ingestion ν•­λͺ©κΉŒμ§€ 포함 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.
(https://github.com/metatron-app/metatron-discovery/issues/1415, https://github.com/metatron-app/metatron-discovery/issues/1416)

@nogah12
EngineMonitoringSetter: ########### engine monitoring job : find target servers

이 작이 μˆ˜ν–‰λœ 이후에 db에 μ €μž₯λ˜λŠ”λ°μš”,
ν˜Ήμ‹œ 이 둜그 이후에도 μ €μž₯λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ ν•΄λ‹Ή μ‹œμ  둜그 곡유 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.

@alchan-lee
slack 에 문의 λ“œλ Έλ˜ API κ΄€λ ¨ν•΄μ„œ 확인 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.

@koeun222 Overviewν™”λ©΄ λ””μžμΈμ„ μ’€ μˆ˜μ •ν•΄μ£Όμ‹€μˆ˜ μžˆμœΌμ‹ κ°€μš”?
image
Datasource Count(λ…Έλž€λ°•μŠ€)의 μœ„μ ― 높이λ₯Ό 100%둜 λ§Œλ“€μ–΄μ£Όμ‹€μˆ˜ μžˆμœΌμ‹ κ°€μš”? 그리고 맨 μ•žμ— GC CPUλŠ” μ‚­μ œλ˜μ—ˆμ–΄μš”.

λ””μžμΈ κ³΅μœ λ“œλ¦½λ‹ˆλ‹€. νΌλΈ”κΉŒμ§€ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€
image
image

@minhyun2 @eltriny 개발 μ§„ν–‰λΆ€νƒλ“œλ €μš”.

@eltriny Beta 뺏지λ₯Ό 메뉴에 λΆ™μ–΄μ•Ό 할것 같은데 ν˜„μž¬λŠ” 2depthμ—λ§Œ λΆ™μ—¬μ§€κ²Œ 퍼블이 λ˜μ—ˆλ”λΌκ³ μš”. 3depth(메뉴 : Management > Engine Monitoring)에도 뢙을 수 있게 퍼블 λ³€κ²½ λΆ€νƒλ“œλ €μš”.

image

Was this page helpful?
0 / 5 - 0 ratings