โข
GET /services โ ์๋น์ค ๋ณ ๊ฐ์(์์ฝ ๋ฉํธ๋ฆญ)
โข
GET /services/{serviceName}/metrics โ ์๋น์ค ์์ค ์ง๊ณ ๋ฉํธ๋ฆญ
โข
GET /services/{serviceName}/endpoints โ ์๋น์ค์ ์๋ํฌ์ธํธ๋ณ ์ง๊ณ ๋ฉํธ๋ฆญ
โข
GET /services/{serviceName}/traces โ ์๋น์ค ๋ฃจํธ ํธ๋ ์ด์ค ๊ฒ์
โข
GET /traces/{traceId} โ traceId๋ก ํธ๋ ์ด์ค ๋ฐ ๊ด๋ จ ์คํฌ/๋ก๊ทธ ์กฐํ
โข
GET /logs โ ๋ก๊ทธ ๊ฒ์
โข
GET /spans โ ์คํฌ ๊ฒ์
API ์๋ํฌ์ธํธ
GET /services
Query Parameter | Type | Required | Description |
from | string (date-time) | No | ์ง๊ณ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ์ง๊ณ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ (์:ย prod,ย stage,ย dev) |
sort_by | string | No | ์ ๋ ฌ ๊ธฐ์ค ํ๋<br/>-ย request_count: ์์ฒญ ์ ๊ธฐ์ค (๊ธฐ๋ณธ๊ฐ)<br/>-ย latency_p95_ms: 95๋ฒ์งธ ๋ฐฑ๋ถ์ ์ง์ฐ์๊ฐ<br/>-ย error_rate: ์๋ฌ์จ |
limit | integer | No | ๋ฐํํ ์ต๋ ์๋น์ค ์ (๊ธฐ๋ณธ๊ฐ: 50, ์ต์: 1) |
name_filter | string | No | ์๋น์ค ์ด๋ฆ ํํฐ (๋์๋ฌธ์ ๊ตฌ๋ถ ์์) |
{
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"environment": "prod",
"services": [
{
"service_name": "api-gateway",
"environment": "prod",
"request_count": 15000,
"latency_p95_ms": 250.5,
"error_rate": 0.02,
"labels": {
"version": "1.0.0"
}
}
]
}
JSON
๋ณต์ฌ
GET /traces/{traceId}
Parameter | Type | Required | Description |
traceId | string | Yes | ํธ๋ ์ด์ค ๊ณ ์ ์๋ณ์ |
Query Parameter | Type | Required | Description |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
service | string | No | ์๋น์ค ์ด๋ฆ ํํฐ (์ง์ ์ ํด๋น ์๋น์ค์ ์คํฌ๊ณผ ๋ก๊ทธ๋ง ๋ฐํ) |
{
"trace_id": "abc123",
"spans": [
{
"timestamp": "2025-01-01T12:00:00Z",
"span_id": "span-001",
"parent_span_id": null,
"name": "GET /api/users",
"kind": "SERVER",
"duration_ms": 45.2,
"status": "OK",
"service_name": "user-service",
"environment": "prod",
"http_method": "GET",
"http_path": "/api/users",
"http_status_code": 200,
"labels": {},
"db_statement": null
}
],
"logs": [
{
"timestamp": "2025-01-01T12:00:00Z",
"level": "INFO",
"message": "Request processed successfully",
"service_name": "user-service",
"span_id": "span-001",
"trace_id": "abc123",
"labels": {}
}
]
}
JSON
๋ณต์ฌ
GET /services/{serviceName}/metrics
ํ์ฌ Overview ์น์
์ ํด๋น
Parameter | Type | Required | Description |
serviceName | string | Yes | ๋ฉํธ๋ฆญ์ ์กฐํํ ์๋น์ค ์ด๋ฆ (๋์๋ฌธ์ ๊ตฌ๋ถ ์์) |
Query Parameter | Type | Required | Description |
metric | string | No | ์กฐํํ ๋ฉํธ๋ฆญ<br/>-ย http_requests_total: ์ด ์์ฒญ ์<br/>-ย latency_p95_ms: 95๋ฒ์งธ ๋ฐฑ๋ถ์ ์ง์ฐ์๊ฐ<br/>-ย error_rate: ์๋ฌ์จ<br/>(์๋ต ์ ๋ชจ๋ ๋ฉํธ๋ฆญ ๋ฐํ) |
from | string (date-time) | No | ์๊ฐ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ์๊ฐ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
interval | string | No | ์ง๊ณ ๊ฐ๊ฒฉ (์:ย 1m,ย 5m,ย 1h)<br/>์๊ฐ ๋จ์:ย s,ย m,ย h |
{
"metric_name": "latency_p95_ms",
"service_name": "user-service",
"environment": "prod",
"points": [
{
"timestamp": "2025-01-01T12:00:00Z",
"value": 45.5,
"labels": {
"region": "us-east-1"
}
}
]
}
# ๋๋ ๋ฐฐ์ด ํํ
[
{
"metric_name": "http_requests_total",
"service_name": "user-service",
"environment": "prod",
"points": [...]
},
{
"metric_name": "latency_p95_ms",
"service_name": "user-service",
"environment": "prod",
"points": [...]
}
]
JSON
๋ณต์ฌ
GET /logs
Query Parameter | Type | Required | Description |
service_name | string | No | ์๋น์ค ์ด๋ฆ ํํฐ |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
level | string | No | ๋ก๊ทธ ๋ ๋ฒจ ํํฐ (DEBUG,ย INFO,ย WARN,ย ERROR) |
trace_id | string | No | ํธ๋ ์ด์ค ID ํํฐ |
span_id | string | No | ์คํฌ ID ํํฐ |
message | string | No | ๋ฉ์์ง ์ ๋ฌธ ๊ฒ์ ์ฟผ๋ฆฌ |
from | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
page | integer | No | ํ์ด์ง ๋ฒํธ (1๋ถํฐ ์์, ๊ธฐ๋ณธ๊ฐ: 1) |
size | integer | No | ํ์ด์ง๋น ํญ๋ชฉ ์ (๊ธฐ๋ณธ๊ฐ: 50, ์ต๋: 1000) |
sort | string | No | ํ์์คํฌํ ์ ๋ ฌ ์์ (ascย ๋๋ย desc, ๊ธฐ๋ณธ๊ฐ:ย desc) |
{
"total": 1000,
"page": 1,
"size": 50,
"items": [
{
"timestamp": "2025-01-01T12:00:00Z",
"level": "INFO",
"message": "User logged in",
"service_name": "auth-service",
"span_id": "span-001",
"trace_id": "abc123",
"labels": {
"user_id": "12345"
}
}
]
}
JSON
๋ณต์ฌ
GET /spans
Query Parameter | Type | Required | Description |
service_name | string | No | ์๋น์ค ์ด๋ฆ ํํฐ |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
name | string | No | ์คํฌ ์ด๋ฆ ํํฐ (์ ํํ ์ผ์น) |
kind | string | No | ์คํฌ ์ข
๋ฅ (SERVER,ย CLIENT,ย INTERNAL) |
status | string | No | ์คํฌ ์ํ (OK,ย ERROR) |
min_duration_ms | number | No | ์ต์ ์คํฌ ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
max_duration_ms | number | No | ์ต๋ ์คํฌ ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
trace_id | string | No | ํธ๋ ์ด์ค ID ํํฐ |
parent_span_id | string | No | ๋ถ๋ชจ ์คํฌ ID ํํฐ |
from | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
page | integer | No | ํ์ด์ง ๋ฒํธ (1๋ถํฐ ์์, ๊ธฐ๋ณธ๊ฐ: 1) |
size | integer | No | ํ์ด์ง๋น ํญ๋ชฉ ์ (๊ธฐ๋ณธ๊ฐ: 50, ์ต๋: 1000) |
sort | string | No | ์ ๋ ฌ ์์<br/>-ย duration_ascย /ย duration_desc: ์ง์์๊ฐ ๊ธฐ์ค<br/>-ย start_time_ascย /ย start_time_desc: ์์ ์๊ฐ ๊ธฐ์ค (๊ธฐ๋ณธ๊ฐ:ย start_time_desc) |
{
"total": 500,
"page": 1,
"size": 50,
"items": [
{
"timestamp": "2025-01-01T12:00:00Z",
"span_id": "span-001",
"parent_span_id": null,
"name": "GET /api/users",
"kind": "SERVER",
"duration_ms": 45.2,
"status": "OK",
"service_name": "user-service",
"environment": "prod",
"http_method": "GET",
"http_path": "/api/users",
"http_status_code": 200,
"labels": {},
"db_statement": null
}
]
}
JSON
๋ณต์ฌ
GET /services/{serviceName}/endpoints
/resources ์น์
์ ํด๋น(ํ์ฌ)
Query Parameter | Type | Required | Description |
from | string (date-time) | No | ์ง๊ณ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ์ง๊ณ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
metric | string | No | ๋ฉํธ๋ฆญ ์ข
๋ฅ<br/>-ย request_count: ์์ฒญ ์<br/>-ย latency_p95_ms: 95๋ฒ์งธ ๋ฐฑ๋ถ์ ์ง์ฐ์๊ฐ<br/>-ย error_rate: ์๋ฌ์จ<br/>(์๋ต ์ ๋ชจ๋ ๋ฉํธ๋ฆญ ๊ณ์ฐ ๋ฐย request_count๋ก ์ ๋ ฌ) |
sort_by | string | No | ์ ๋ ฌ ๊ธฐ์ค (request_count,ย latency_p95_ms,ย error_rate, ๊ธฐ๋ณธ๊ฐ:ย request_count) |
limit | integer | No | ๋ฐํํ ์ต๋ ์๋ํฌ์ธํธ ์ (๊ธฐ๋ณธ๊ฐ: 10, ์ต์: 1) |
name_filter | string | No | ์๋ํฌ์ธํธ ์ด๋ฆ ํํฐ (๋์๋ฌธ์ ๊ตฌ๋ถ ์์) |
{
"service_name": "user-service",
"environment": "prod",
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"endpoints": [
{
"endpoint_name": "GET /api/users",
"service_name": "user-service",
"environment": "prod",
"request_count": 5000,
"latency_p95_ms": 45.5,
"error_rate": 0.01,
"labels": {
"version": "1.0.0"
}
}
]
}
JSON
๋ณต์ฌ
GET /services/{serviceName}/traces
Query Parameter | Type | Required | Description |
status | string | No | ํธ๋ ์ด์ค ์ํ ํํฐ (OK,ย ERROR) |
min_duration_ms | number | No | ์ต์ ํธ๋ ์ด์ค ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
max_duration_ms | number | No | ์ต๋ ํธ๋ ์ด์ค ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
from | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์์ ์๊ฐ (ํฌํจ) |
to | string (date-time) | No | ๊ฒ์ ์๋์ฐ ์ข
๋ฃ ์๊ฐ (์ ์ธ) |
environment | string | No | ๋ฐฐํฌ ํ๊ฒฝ ํํฐ |
page | integer | No | ํ์ด์ง ๋ฒํธ (1๋ถํฐ ์์, ๊ธฐ๋ณธ๊ฐ: 1) |
size | integer | No | ํ์ด์ง๋น ํญ๋ชฉ ์ (๊ธฐ๋ณธ๊ฐ: 20, ์ต๋: 200) |
sort | string | No | ์ ๋ ฌ ์์<br/>-ย duration_descย /ย duration_asc: ์ด ํธ๋ ์ด์ค ์ง์์๊ฐ ๊ธฐ์ค<br/>-ย start_time_descย /ย start_time_asc: ์์ ์๊ฐ ๊ธฐ์ค<br/>(๊ธฐ๋ณธ๊ฐ:ย duration_desc) |
{
"total": 100,
"page": 1,
"size": 20,
"traces": [
{
"trace_id": "abc123",
"root_span_name": "GET /api/users",
"status": "OK",
"duration_ms": 250.5,
"start_time": "2025-01-01T12:00:00Z",
"service_name": "user-service",
"environment": "prod",
"labels": {
"user_id": "12345"
}
}
]
}
JSON
๋ณต์ฌ
๋ฐ์ดํฐ ์คํค๋ง
SpanItem
์คํฌ ์ด๋ฒคํธ (ํธ๋ ์ด์ค ๋ด ๊ฐ๋ณ ์์
)
Field | Type | Required | Description |
timestamp | string (date-time) | Yes | ํ์์คํฌํ |
span_id | string | Yes | ์คํฌ ID |
parent_span_id | string (nullable) | Yes | ๋ถ๋ชจ ์คํฌ ID |
name | string | Yes | ์คํฌ ์ด๋ฆ |
kind | string | Yes | ์คํฌ ์ข
๋ฅ (SERVER,ย CLIENT,ย INTERNAL) |
duration_ms | number | Yes | ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
status | string | Yes | ์ํ (OK,ย ERROR) |
service_name | string | Yes | ์๋น์ค ์ด๋ฆ |
environment | string | Yes | ๋ฐฐํฌ ํ๊ฒฝ |
http_method | string (nullable) | No | HTTP ๋ฉ์๋ |
http_path | string (nullable) | No | HTTP ๊ฒฝ๋ก |
http_status_code | integer (nullable) | No | HTTP ์ํ ์ฝ๋ |
labels | object | No | ์ถ๊ฐ ๋ ์ด๋ธ |
db_statement | string (nullable) | No | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฌธ |
LogItem
๋ก๊ทธ ์ด๋ฒคํธ
Field | Type | Required | Description |
timestamp | string (date-time) | Yes | ํ์์คํฌํ |
level | string | Yes | ๋ก๊ทธ ๋ ๋ฒจ (DEBUG,ย INFO,ย WARN,ย ERROR) |
message | string | Yes | ๋ก๊ทธ ๋ฉ์์ง |
service_name | string | Yes | ์๋น์ค ์ด๋ฆ |
span_id | string (nullable) | No | ์คํฌ ID |
trace_id | string (nullable) | No | ํธ๋ ์ด์ค ID |
labels | object | No | ์ถ๊ฐ ๋ ์ด๋ธ |
ServiceSummary
์๋น์ค ์ง๊ณ ๋ฉํธ๋ฆญ
Field | Type | Required | Description |
service_name | string | Yes | ์๋น์ค ์ด๋ฆ |
environment | string | Yes | ๋ฐฐํฌ ํ๊ฒฝ |
request_count | number | Yes | ์ด ์์ฒญ ์ |
latency_p95_ms | number | Yes | 95๋ฒ์งธ ๋ฐฑ๋ถ์ ์ง์ฐ์๊ฐ (๋ฐ๋ฆฌ์ด) |
error_rate | number | Yes | ์๋ฌ์จ (0~1) |
labels | object (nullable) | No | ์ถ๊ฐ ๋ ์ด๋ธ |
EndpointMetrics
์๋ํฌ์ธํธ ๋ฉํธ๋ฆญ
Field | Type | Required | Description |
endpoint_name | string | Yes | ์๋ํฌ์ธํธ ์ด๋ฆ |
service_name | string | Yes | ์๋น์ค ์ด๋ฆ |
environment | string | Yes | ๋ฐฐํฌ ํ๊ฒฝ |
request_count | number | Yes | ์์ฒญ ์ |
latency_p95_ms | number | Yes | 95๋ฒ์งธ ๋ฐฑ๋ถ์ ์ง์ฐ์๊ฐ (๋ฐ๋ฆฌ์ด) |
error_rate | number | Yes | ์๋ฌ์จ (0~1) |
labels | object (nullable) | No | ์ถ๊ฐ ๋ ์ด๋ธ |
TraceSummary
ํธ๋ ์ด์ค ์์ฝ
Field | Type | Required | Description |
trace_id | string | Yes | ํธ๋ ์ด์ค ID |
root_span_name | string | Yes | ๋ฃจํธ ์คํฌ ์ด๋ฆ |
status | string | Yes | ์ํ (OK,ย ERROR) |
duration_ms | number | Yes | ์ด ์ง์์๊ฐ (๋ฐ๋ฆฌ์ด) |
start_time | string (date-time) | Yes | ์์ ์๊ฐ |
service_name | string | Yes | ์๋น์ค ์ด๋ฆ |
environment | string | Yes | ๋ฐฐํฌ ํ๊ฒฝ |
labels | object (nullable) | No | ์ถ๊ฐ ๋ ์ด๋ธ |

