2016-06-28 9 views
1

Amazon EC2インスタンスでホストされているドッカーコンテナ内でNodeJSアプリケーションを実行しています。 Toドッカーコンテナ内でホスト名を自動的に取得する方法

DatadogでNode.jsアプリケーションの監視を有効にするには、datadog-metricsライブラリを使用しており、これをアプリケーションに統合しています。私たちは、基本的に、我々は成功しdatadogにメトリックを公開することができます、がexample_app.js

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);

というファイルにJavascriptのコードの下に保存するように要求するが、これは自動化することができるならば、私たちは迷っています。私たちはこれをドッカーイメージに組み込みたいので、可能であれば少なくともドッカーホスト名を使用できるように、ホスト名を自動的に取得する必要があります。これまでは、 "myhost"と "myapp" "値を手動で入力します。 %myhostにAWSインスタンスのホスト名の値を取得するためのより良い方法はありますか?

答えて

2

試してみませんか?

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

ドッカーコンテナのホスト名が返されます。 docker run -h hostname image commandのようなものを使用して明示的にホスト名を設定していない場合は、ドッカーホストのホスト名が返されます。

また、パペット、アシスタントなどの配置ツールを使用してこれを実行し、コンテナを展開するときにファイルをテンプレート化することもできます。

関連する問題