Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Commit

Permalink
Merge pull request #67 from midwayjs/fix/daemon_use_env_from_global_c…
Browse files Browse the repository at this point in the history
…onfig

fix: daemon use env object from global config
  • Loading branch information
czy88840616 committed Dec 14, 2017
2 parents 9f8cee0 + f2ebdb1 commit a004228
Show file tree
Hide file tree
Showing 13 changed files with 26 additions and 22 deletions.
2 changes: 1 addition & 1 deletion docs/source/zh-cn/monitor/monitor_std.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Pandora.js 对这几种类型都做了一定程度的支持,但是 Gauge 和 C
Reporter 定义了一系列数据输出方式,默认的有一些:

* ConsoleReporter 通过命令行输出 MetricsEndPint 的内容
* FileMetricsReporter 通过 metrics.log 文本来输出 MetricsEndPint 的内容
* FileMetricsManagerReporter 通过 metrics.log 文本来输出 MetricsEndPint 的内容


> 注意,MetricsEndPoint 是一个特殊的存在,大多数 APM 只需要采集这个 EndPoint,如果框架或者用户想采集其他的 EndPoint,可以通过 Resource 暴露的 HTTP API 或者自定义 Reporter 的方式。
Expand Down
2 changes: 1 addition & 1 deletion docs/source/zh-cn/monitor/report.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ title: 监控数据上报
- Reporter 基础接口,没有实现
- ScheduledMetricsReporter 针对 Metrics 的周期性采集的上报基类,只上报 Metrics
- ConsoleReporter 通过命令行输出 Metrics 的信息
- FileMetricManagerReporter 通过写入文件的方式输出 Metrics 信息
- FileMetricsManagerReporter 通过写入文件的方式输出 Metrics 信息
- CustomReporter 自定义上报基类,可以上报所有东西,一般自定义的上报会继承这个类
- TraceReporter 上报链路信息

Expand Down
2 changes: 1 addition & 1 deletion docs/source/zh-cn/process/ipc_hub.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const {getProxy, publishObject} = require('pandora');
async function main() {

// 发布 Math 到 IPC-Hub
await publishObject(Math, 'math');
await publishObject('math', Math);

// 获得对象代理
const proxy = await getProxy('math');
Expand Down
2 changes: 1 addition & 1 deletion packages/metrics/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export * from './indicator/impl/NodeIndicator';
*/
export * from './reporter/ScheduledMetricsReporter';
export * from './reporter/ConsoleReporter';
export * from './reporter/FileMetricManagerReporter';
export * from './reporter/FileMetricsManagerReporter';
export * from './reporter/CustomReporter';
export * from './collect/MetricObject';
export * from './collect/MetricsCollector';
Expand Down
6 changes: 3 additions & 3 deletions packages/metrics/src/reporter/CustomReporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ export abstract class CustomReporter implements Reporter {

options;
intervalHandler;
metricManager;
metricsManager;
endPointService;

constructor(actuatorManager, options: {
rateFactor?: number,
durationFactor?: number
} = {}) {
this.options = options;
this.metricManager = actuatorManager.getMetricsManager();
this.metricsManager = actuatorManager.getMetricsManager();
this.endPointService = actuatorManager.getEndPointService();
}

Expand All @@ -34,7 +34,7 @@ export abstract class CustomReporter implements Reporter {
}

getCategoryMetrics() {
const categoryMetrics = this.metricManager.getAllCategoryMetrics();
const categoryMetrics = this.metricsManager.getAllCategoryMetrics();
return {
gauges: categoryMetrics.get(MetricType.GAUGE),
counters: categoryMetrics.get(MetricType.COUNTER),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {MetricsCollector} from '../collect/MetricsCollector';
import {CompactMetricsCollector} from '../collect/CompactMetricsCollector';
import {join} from 'path';

export class FileMetricManagerReporter extends ScheduledMetricsReporter {
export class FileMetricsManagerReporter extends ScheduledMetricsReporter {

globalTags;
logger;
Expand Down
10 changes: 5 additions & 5 deletions packages/metrics/src/reporter/ScheduledMetricsReporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@ export abstract class ScheduledMetricsReporter implements Reporter {
options;
interval;
intervalHandler;
metricManager;
metricsManager;

constructor(actuatorManager?, options: {
rateFactor?: number,
durationFactor?: number
} = {}) {
this.options = options;
if(actuatorManager) {
this.metricManager = actuatorManager.getMetricsManager();
this.metricsManager = actuatorManager.getMetricsManager();
}
}

// for test
setMetricManager(metricManager) {
this.metricManager = metricManager;
setMetricsManager(metricsManager) {
this.metricsManager = metricsManager;
}

start(interval) {
Expand All @@ -37,7 +37,7 @@ export abstract class ScheduledMetricsReporter implements Reporter {
this.intervalHandler = setInterval(async () => {
debug('exec report once');
try {
const categoryMetrics = this.metricManager.getAllCategoryMetrics();
const categoryMetrics = this.metricsManager.getAllCategoryMetrics();
await this.report(
{
gauges: categoryMetrics.get(MetricType.GAUGE),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ describe('/test/unit/reporter/ConsoleReporter.test.ts', () => {
manager.register('test', MetricName.build('reporter.register.timer'), new BaseTimer());
manager.register('test', MetricName.build('reporter.register.meter'), new BaseMeter());
const reporter = new ConsoleReporter();
reporter.setMetricManager(manager);
reporter.setMetricsManager(manager);
reporter.start(0.4);

setTimeout(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {expect} from 'chai';
import {BaseCounter, MetricName, BaseHistogram, BaseTimer, BaseMeter, BaseGauge} from '../../../src/common/index';
import {MetricsServerManager} from '../../../src/MetricsServerManager';
import {FileMetricManagerReporter} from '../../../src/reporter/FileMetricManagerReporter';
import {FileMetricsManagerReporter} from '../../../src/reporter/FileMetricsManagerReporter';
import {join} from 'path';
const fs = require('fs');
const os = require('os');
Expand Down Expand Up @@ -30,8 +30,8 @@ describe('/test/unit/reporter/FileMetricManagerReporter.test.ts', () => {
manager.register('test', MetricName.build('reporter.register.histogram'), new BaseHistogram());
manager.register('test', MetricName.build('reporter.register.timer'), new BaseTimer());
manager.register('test', MetricName.build('reporter.register.meter'), new BaseMeter());
const reporter = new FileMetricManagerReporter(null , {});
reporter.setMetricManager(manager);
const reporter = new FileMetricsManagerReporter(null , {});
reporter.setMetricsManager(manager);
reporter.start(0.4);

setTimeout(() => {
Expand Down
2 changes: 1 addition & 1 deletion packages/metrics/test/unit/reporter/reporter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ describe('/test/unit/reporter/reporter.test.ts', () => {
const manager = new MetricsServerManager();
manager.register('test', MetricName.build('reporter.register.pv'), new BaseCounter());
const reporter = new MyReporter();
reporter.setMetricManager(manager);
reporter.setMetricsManager(manager);
reporter.start(1);
});
});
3 changes: 2 additions & 1 deletion packages/pandora/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
![](https://user-images.githubusercontent.com/418820/33816754-3e528ad8-de76-11e7-8558-bfad8b75b4d9.png)

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/midwayjs/pandora/blob/master/LICENSE)
[![GitHub tag](https://img.shields.io/github/tag/midwayjs/pandora.svg)]()
[![Build Status](https://travis-ci.org/midwayjs/pandora.svg?branch=develop)](https://travis-ci.org/midwayjs/pandora)
Expand All @@ -17,7 +19,6 @@ Node.js >= 8.0.0 required.

## Features

- ✔︎ Built-in application model
- ✔︎ Built-in process management
- ✔︎ Dev Ops customization
- ✔︎ Provide Metrics and Standard OpenTracing Implementation
Expand Down
5 changes: 4 additions & 1 deletion packages/pandora/src/daemon/DaemonBootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@ export class DaemonBootstrap {
* @return {Promise<void>}
*/
start(): Promise<void> {

const Environment = this.globalConfig.environment || DefaultEnvironment;

// Register a default env for daemon process
const daemonEnvironment = new DefaultEnvironment({
const daemonEnvironment = new Environment({
processName: 'daemon',
appName: MetricsConstants.METRICS_DEFAULT_APP,
pandoraLogsDir: getPandoraLogsDir()
Expand Down
4 changes: 2 additions & 2 deletions packages/pandora/src/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const {
InfoResource,
ProcessResource,
DaemonResource,
FileMetricManagerReporter,
FileMetricsManagerReporter,
MetricsClient,
MetricsServerManager,
CompactMetricsCollector,
Expand Down Expand Up @@ -164,7 +164,7 @@ export default {
reporter: {
file: {
enabled: true,
target: FileMetricManagerReporter,
target: FileMetricsManagerReporter,
interval: 5,
initConfig: {
collector: CompactMetricsCollector
Expand Down

0 comments on commit a004228

Please sign in to comment.