DCIM 메트릭 데이터 피드 API
DCIM 메트릭 데이터 피드 API는 외부 시스템에서 DCIM(Data Center Infrastructure Management) 메트릭 데이터를 승인하고 데이터베이스에 데이터를 MetricBase 저장하는 엔드포인트를 제공합니다.
이 API는 온도, 습도 및 전력 사용량과 같은 거의 실시간 메트릭 데이터를 수신합니다.
이 API는 스크립팅된 확장점 TNIDCIMFeedParser를 구현하여 선택한 외부 시스템에서 사용하도록 확장할 수 있습니다. 기본 구현 TNIDCIMFeedParserImpl 을 예로 사용할 수 있습니다. 확장점에 대한 자세한 내용은 문서를 참조하십시오 확장점을 사용하여 애플리케이션 기능 확장.
이 API는 에서 사용할 수 있는 Network Inventory Advanced 애플리케이션에 포함되어 있습니다 ServiceNow Store. 이 API에는 플러그인(com.snc.clotho)도 MetricBase 필요합니다.
호출하는 사용자에게 sn_ni_adv.metric_integrator 역할이 있어야 합니다.
DCIM 메트릭 데이터 피드 - POST /sn_ni_adv/dcim/feed/{vendorname}
온도, 습도 및 전력 사용량 MetricBase과 같은 메트릭 데이터를 에 저장합니다.
- 회로 [cmdb_ci_circuit]
- 캐비닛 [cmdb_ci_container_cabinet]
- 케이지 [cmdb_ci_cage]
- 데이터 센터 [cmdb_ci_datacenter]
- 데이터 센터 영역 [cmdb_ci_zone]
이 엔드포인트를 추가 CI 유형과 함께 사용하려면 메트릭 정의를 생성하고 스크립팅된 확장점 TNIDCIMFeedParser를 구현합니다.
URL 형식
기본 URL: /api/sn_ni_adv/dcim/feed/{vendorname}
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| 벤더 이름 | 메트릭 데이터를 수신할 외부 시스템의 이름입니다. 이 API의 기본 구현을 사용하는 경우 이 값은 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 데이터 | 필수 에 저장할 MetricBase데이터 . 데이터 유형: 객체 주:
이 개체에 포함되어야 하는 요소는 매개 변수 및 구성 항목 유형(예: 데이터센터 또는 회로)에 따라 type 달라집니다. |
| data.apparentPower | 킬로볼트-암페어 단위의 피상 전력 데이터입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.apparentPower.unit | 측정 단위입니다. 허용되는 유일한 값은 kVA입니다.데이터 유형: 문자열 |
| data.apparentPower.value | 기록된 킬로볼트-암페어 판독값입니다. 데이터 유형: 문자열 |
| 데이터.자산 | 자산 데이터입니다. 매개변수가 type계량 전력 또는 전력일 때 회로에 필요합니다. 매개변수가 환경적인 경우 캐비닛, 케이지 및 구역에 type 필요합니다. 데이터 유형: 객체 |
| data.asset.id | 자산의 이름입니다. 표: 회로 [cmdb_ci_circuit], 캐비닛 [cmdb_ci_container_cabinet], 케이지 [cmdb_ci_cage] 또는 데이터 센터 영역 [cmdb_ci_zone] 필드: 이름 데이터 유형: 문자열 |
| 데이터.자산.수준 | 자산의 유형입니다. 캐비닛, 케이지 및 구역에 사용됩니다. 가능한 값:
데이터 유형: 문자열 |
| 데이터.자산.유형 | 자산의 유형입니다. 회로에 사용됩니다. 유일하게 허용되는 값은 CIRCUIT입니다.데이터 유형: 문자열 |
| 데이터.캐비닛 | 캐비닛의 이름입니다. 매개변수가 type계량된 전력 또는 전력인 경우 캐비닛에 필요합니다.테이블: 컨테이너 캐비닛 [cmdb_ci_container_cabinet] 필드: 이름 데이터 유형: 문자열 |
| data.cabinetRating | 캐비닛의 전력 사용량은 킬로볼트-암페어로 평가됩니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.cabinetRating.unit | 측정 단위입니다. 허용되는 유일한 값은 kVA입니다.데이터 유형: 문자열 |
| data.cabinetRating.value | 캐비닛의 전력 사용 등급입니다. 데이터 유형: 문자열 |
| 데이터.케이지 | 케이지의 이름입니다. 매개변수가 typemetered-power 또는 power인 경우 케이지에 필요합니다.테이블: 케이지 [cmdb_ci_cage] 필드: 이름 데이터 유형: 문자열 |
| data.contractualPower | 계약에 의해 할당된 전력 사용량(킬로볼트-암페어)입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.contractualPower.unit | 측정 단위입니다. 허용되는 유일한 값은 kVA입니다.데이터 유형: 문자열 |
| 데이터.계약전력.값 | 계약에 할당된 전력 사용량입니다. 데이터 유형: 문자열 |
| 데이터.ibx | 데이터센터의 이름입니다. 데이터센터에 대한 메트릭 데이터를 저장할 때 필요합니다. 테이블: 데이터 센터 [cmdb_ci_datacenter] 데이터 유형: 문자열 |
| 데이터.킬로와트시 | 킬로와트시 단위의 전력 사용량 데이터입니다. 매개변수가 typemetered-power인 경우 필요합니다. 데이터 유형: 객체 |
| data.kilowattHour.unit | 측정 단위입니다. 허용되는 유일한 값은 kWh입니다.데이터 유형: 문자열 |
| data.kilowattHour.value | 기록된 킬로와트시 판독값입니다. 데이터 유형: 문자열 |
| data.peakLastSevenDays | 지난 주 최대 전력 사용량(킬로볼트-암페어)입니다. 매개변수가 typepower인 경우 필요합니다. 데이터 유형: 객체 |
| data.peakLastSevenDays.unit | 측정 단위입니다. 허용되는 유일한 값은 kVA입니다.데이터 유형: 문자열 |
| data.peakLastSevenDays.value | 지난주의 최대 전력 사용량 값입니다. 데이터 유형: 문자열 |
| data.peakLastSevenDaysRatio | 지난 주에 계약에 의해 할당된 금액 중 사용된 전력의 최대 백분율입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.peakLastSevenDaysRatio.unit | 측정 단위입니다. 유일하게 허용되는 값은 PERCENT입니다.데이터 유형: 문자열 |
| data.peakLastSevenDaysRatio.value | 사용된 전력의 최대 백분율입니다. 데이터 유형: 문자열 |
| data.powerConsumptionToContractual | 계약에 의해 할당된 금액 중 사용된 전력의 백분율입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.powerConsumptionToContractual.unit | 측정 단위입니다. 유일하게 허용되는 값은 PERCENT입니다.데이터 유형: 문자열 |
| data.powerConsumptionToContractual.value | 사용된 전력의 백분율입니다. 데이터 유형: 문자열 |
| data.powerFactor | 역률 데이터입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| 데이터.powerFactor.unit | 측정 단위입니다. 유일하게 허용되는 값은 pf입니다.데이터 유형: 문자열 |
| 데이터.파워팩터.값 | 역률 값입니다. 데이터 유형: 문자열 |
| 데이터.읽기 | 수집된 환경 데이터입니다. 매개변수가 type환경인 경우 필요합니다. 데이터 유형: 객체 |
| 데이터.읽기.단위 | 측정 단위입니다. 가능한 값:
데이터 유형: 문자열 |
| 데이터.읽기.값 | 기록된 값입니다. 데이터 유형: 문자열 |
| data.readingTime | 필수 데이터가 수집된 날짜 및 시간입니다. 이 값은 ISO 8601 형식의 UTC여야 합니다. 예: 데이터 유형: 문자열 |
| data.realPower | 킬로와트 단위의 전력 사용량 데이터입니다. 매개변수가 typepower인 경우 필요합니다. 데이터 유형: 객체 |
| 데이터.realPower.unit | 측정 단위입니다. 유일하게 허용되는 값은 kW입니다.데이터 유형: 문자열 |
| 데이터.realPower.value | 기록된 킬로와트 판독값입니다. 데이터 유형: 문자열 |
| data.soldCurrent | 계약에 의해 할당된 전류(암페어)입니다. 매개변수가 typepower인 경우 필요합니다.데이터 유형: 객체 |
| data.soldCurrent.unit | 측정 단위입니다. 유일하게 허용되는 값은 A입니다.데이터 유형: 문자열 |
| data.soldCurrent.value | 계약에 의해 할당된 전류입니다. 데이터 유형: 문자열 |
| 데이터.태그 | 환경 데이터의 유형을 포함하는 객체입니다. 매개변수가 type환경인 경우 필요합니다.데이터 유형: 객체 |
| data.tag.id | 환경 데이터의 유형입니다. 가능한 값:
데이터 유형: 문자열 |
| 유형 | 필수 메트릭 데이터의 유형입니다. 가능한 값:
데이터 유형: 문자열 |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.
| 머리글 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. .만 지원합니다 application/json;charset=UTF-8. |
| 권한 부여 | 기초의. |
| 콘텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 머리글 | 설명 |
|---|---|
| 콘텐츠-형식 | 응답 본문의 데이터 형식입니다. .만 지원합니다 application/json;charset=UTF-8. |
상태 코드
이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 400 | 잘못된 요청입니다. 잘못된 요청 유형 또는 잘못된 형식의 요청이 탐지되었습니다. |
| 401 | 권한이 해제되었습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다. |
| 403 | 금지되었습니다. 사용자에게 지정된 기록에 대한 액세스 권한이 없습니다. |
| 404 | 찾을 수 없습니다. 요청한 항목을 찾을 수 없습니다. |
| 429 | 요청이 너무 많습니다. |
| 500 | 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다. |
응답 본문 매개변수(JSON)
| 이름 | 설명 |
|---|---|
| 결과 | 요청에 대한 상세 정보입니다. 데이터 유형: 객체 |
| 결과.상태 | 요청의 상태입니다. 데이터 유형: 문자열 |
| result.sys_id | 메트릭 데이터로 업데이트된 CI의 Sys_id입니다. 표: 회로 [cmdb_ci_circuit], 캐비닛 [cmdb_ci_container_cabinet], 케이지 [cmdb_ci_cage], 데이터 센터 [cmdb_ci_datacenter] 또는 데이터 센터 영역 [cmdb_ci_zone] 데이터 유형: 문자열 |
cURL 요청
데이터 센터에 대한 계량된 전력 데이터를 저장합니다.
curl "https://instance.service-now.com/api/sn_ni_adv/dcim/feed/vendorname" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"type": "metered-power",
"data": {
"ibx": "Datacenter Name",
"kilowattHour": {
"value": "40509.323",
"unit": "kWh"
},
"readingTime": "2025-07-03T16:22:15.000Z"
}
}" \
--user 'username':'password'
응답 본문.
{
"result": {
"status": "success",
"sys_id": "c88dde85ff2662109cb9ffffffffffcc"
}
}
cURL 요청
회로에 대한 전력 데이터를 저장합니다.
curl "https://instance.service-now.com/api/sn_ni_adv/dcim/feed/vendorname" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"type": "power",
"data": {
"asset": {
"id": "Circuit Name",
"type": "CIRCUIT"
},
"realPower": {
"value": "0.522",
"unit": "kW"
},
"apparentPower": {
"value": "1.070",
"unit": "kVA"
},
"contractualPower": {
"value": "60.000",
"unit": "kVA"
},
"powerFactor": {
"value": "0.48",
"unit": "pf"
},
"soldCurrent": {
"value": "15.000",
"unit": "A"
},
"powerConsumptionToContractual": {
"value": "32.151",
"unit": "PERCENT"
},
"cabinetRating": {
"value": "123.300",
"unit": "kVA"
},
"peakLastSevenDays": {
"value": "1.146",
"unit": "kVA"
},
"peakLastSevenDaysRatio": {
"value": "34.424",
"unit": "PERCENT"
},
"readingTime": "2025-07-03T16:22:15.000Z"
}
}" \
--user 'username':'password'
응답 본문.
{
"result": {
"status": "success",
"sys_id": "c67dbe45fc2662109cb9ffffffffffcd"
}
}
cURL 요청
구역에 대한 온도 데이터를 저장합니다.
curl "https://instance.service-now.com/api/sn_ni_adv/dcim/feed/vendorname" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"type": "environmental",
"data": {
"asset": {
"id": "Zone Name",
"level": "ZONE"
},
"reading": {
"value": "23.300",
"unit": "CELSIUS"
},
"tag": {
"id": "temperature"
},
"readingTime": "2025-07-03T16:22:15.000Z"
}
}" \
--user 'username':'password'
응답 본문.
{
"result": {
"status": "success",
"sys_id": "c64dbc42fe2862109cb9ffffffffffed"
}
}
cURL 요청
캐비닛에 대한 습도 데이터를 저장합니다.
curl "https://instance.service-now.com/api/sn_ni_adv/dcim/feed/vendorname" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"type": "environmental",
"data": {
"asset": {
"id": "Test Cabinet",
"level": "CABINET"
},
"reading": {
"value": "66.120",
"unit": "PERCENT"
},
"tag": {
"id": "humidity"
},
"readingTime": "2025-07-03T16:22:15.000Z"
}
}" \
--user 'username':'password'
응답 본문.
{
"result": {
"status": "success",
"sys_id": "c24dbc82fe3862107cb9ffffffffffbc"
}
}