2016-06-28 5 views
1

Amazon EC2 인스턴스에서 호스팅되는 도커 컨테이너에서 NodeJS 응용 프로그램을 실행하고 있습니다. To도커 컨테이너에서 호스트 이름을 자동으로 가져 오는 방법

Datadog로 Node.js 응용 프로그램에 대한 모니터링을 사용하려면 datadog-metrics 라이브러리를 사용하고 응용 프로그램과 통합하십시오. 우리는 기본적으로 파일에라는 example_app.js

우리가 성공적으로 datadog 메트릭을 게시 할 수 있지만이 자동화 할 수 있다면 우리가 궁금해하는,하지만

var metrics = require('datadog-metrics'); 
 
metrics.init({ **host: 'myhost', prefix: 'myapp.'** }); 
 

 
function collectMemoryStats() { 
 
    var memUsage = process.memoryUsage(); 
 
    metrics.gauge('memory.rss', memUsage.rss); 
 
    metrics.gauge('memory.heapTotal', memUsage.heapTotal); 
 
    metrics.gauge('memory.heapUsed', memUsage.heapUsed); 
 
    metrics.increment('memory.statsReported'); 
 
} 
 

 
setInterval(collectMemoryStats, 5000);

을 자바 스크립트 코드 아래를 저장해야 . 이것을 우리의 도커 이미지에 넣기를 원한다. 그러므로 가능하다면 도커 호스트 이름을 사용할 수 있어야한다. 자동으로 호스트 네임을 선택해야한다. 지금까지 우리는 "myhost"와 "myapp"를 수동으로 지정하고있다. "값을 수동으로 입력하십시오. % myhost에 AWS 인스턴스 호스트 이름 값을 가져 오는 더 좋은 방법은 없습니까?

답변

2

왜 시도하지 않습니까?

var os = require(“os”); 
var hostname = os.hostname(); 

도커 컨테이너의 호스트 이름을 반환합니다. docker run -h hostname image command과 같은 호스트 명을 명시 적으로 설정하지 않았다면, docker 호스트의 호스트 명을 돌려줍니다.

다른 방법으로는 꼭두각시, 퍼니언스 등과 같은 배포 도구를 사용하여이 작업을 수행하고 컨테이너를 배포 할 때 파일을 템플릿화할 수 있습니다.

관련 문제