config.js 4.87 KB
/**
 * config.js
 * @author: feng.chen<feng.chen@yoho.cn>
 * @date: 2017/04/13
 */

'use strict';

const isProduction = process.env.NODE_ENV === 'production';
const isTest = process.env.NODE_ENV === 'test';

module.exports = {
    app: 'yoho-apm',
    appVersion: '0.0.1', // 调用api的版本
    port: 6009,
    siteUrl: '//shop.yohobuy.com',
    cookieDomain: '.yohobuy.com',
    domains: [/yohobuy\.com^/],
    loggers: {
        infoFile: {
            name: 'info',
            level: 'info',
            filename: '/Data/logs/yoho-apm/info/info.log',
            maxFiles: 7
        },
        errorFile: {
            name: 'error',
            level: 'error',
            filename: '/Data/logs/yoho-apm/error/error.log',
            handleExceptions: true,
            maxFiles: 7
        },
        console: {
            close: false,
            level: 'debug',
            colorize: 'all',
            prettyPrint: true
        }
    },
    sourceMap: {
        domain: 'http://static-ci.yoho.cn'
    },
    reportApi: {
        host: 'influxd.yoho.cn',
        db: 'web-apm',
        measurement: 'api-info',
        duration: 2000,
        records: 1
    },
    reportRoute: {
        host: 'influxd.yoho.cn',
        db: 'web-apm',
        measurement: 'route-info',
        duration: 2000,
        records: 1
    },
    mysql: {
        host: 'localhost',
        userName: 'root',
        password: 'root',
        port: '3306',
        db: 'yoho_apm_test'
    },
    table: {
        slow: 'slow_duration_new',
        error: 'error_report',
        perf: 'perf_report'
    },
    slowRoute: {
        min: 1000,
        max: 10 * 1000

        // min: 0,
        // max: 10 * 1000
    },
    zookeeperServer: '127.0.0.1:2181',
    redis: {
        connect: {
            // host: '127.0.0.1',

            host: '192.168.102.49',
            port: '6379',
            enable_offline_queue: false,
            retry_strategy(options) {
                if (options.error && options.error.code === 'ECONNREFUSED') {
                    console.log('connect redis server fail');
                }

                if (options.attempt < 10) {
                    return Math.min(options.attempt * 100, 1000);
                } else if (options.attempt > 10 && options.attempt < 100) {
                    return 1000;
                } else {
                    return 1000 * 10;
                }
            }
        }
    },
    REQUEST_LIMIT: {
        // 10s 最多访问5次
        10: 5,

        // 30s 最多访问10次
        30: 10,

        // 60s 最多访问15次
        60: 15,

        // 100s 最多访问100次
        600: 100
    }
};

if (isProduction) {
    Object.assign(module.exports, {
        reportApi: {
            host: '10.66.0.139',
            port: 8086,
            db: 'web-apm',
            measurement: 'api-info',
            duration: 2000,
            records: 10
        },
        reportRoute: {
            host: '10.66.0.139',
            port: 8086,
            db: 'web-apm',
            measurement: 'route-info',
            duration: 2000,
            records: 10
        },
        sourceMap: {
            domain: 'http://10.66.101.9:6006'
        },
        mysql: {
            host: '10.66.0.139',
            port: '3306',
            db: 'webapm',
            userName: 'root',
            password: 'yB877Jy7tV6juIYk'
        },
        zookeeperServer: 'web.zookeeper.yohoops.org:2181',
        redis: {
            connect: {
                host: 'redis.web.yohoops.org',
                port: '6379',
                password: 'redis9646',
                enable_offline_queue: false,
                retry_strategy(options) {
                    if (options.error && options.error.code === 'ECONNREFUSED') {
                        console.log('connect redis server fail');
                    }

                    if (options.attempt < 10) {
                        return Math.min(options.attempt * 100, 1000);
                    } else if (options.attempt > 10 && options.attempt < 100) {
                        return 1000;
                    } else {
                        return 1000 * 10;
                    }
                }
            }
        }
    });
}
if (isTest) {
    Object.assign(module.exports, {
        reportApi: {
            host: 'influxdblog.web.yohoops.org',
            db: 'web-apm',
            measurement: 'api-info',
            duration: 2000,
            records: 10
        },
        reportRoute: {
            host: 'influxdblog.web.yohoops.org',
            db: 'web-apm',
            measurement: 'route-info',
            duration: 2000,
            records: 10
        },
        sourceMap: {
            domain: 'http://10.66.101.9:6006'
        },
        mysql: {
            host: '192.168.102.219',
            userName: 'yh_test',
            password: 'yh_test',
            port: '3306',
            db: 'yoho_apm_test'
        }
    });
}