UNPKG

berlioz

Version:

Berlioz - cloud deployment and migration services

105 lines (94 loc) 3.07 kB
const BaseItem = require('../entities/base') module.exports = { name: "ExtendZipkin", canRunGlobal: ({compiler, registry}) => { if (registry.services.length == 0) { if (!registry.findByNaming('cluster', ['sprt'])) { return false; } } var policy = registry.resolvePolicy('distributed-tracing-provider'); if (policy.value == 'zipkin' || policy.value == 'jaeger') { return true; } return false; }, globalAction: ({compiler, registry}) => { var policy = registry.resolvePolicy('distributed-tracing-provider'); var dtraceCfg = { kind: 'service', cluster: 'sprt', sector: 'main', name: 'dtrace', code: { kind: 'docker', image: '' }, provides: { client: { port: 9411, protocol: 'http' } }, resources: { memory: { min: 300 } }, environment: { } } compiler.markClusterImplicit(dtraceCfg.cluster); if (policy.value == 'zipkin') { dtraceCfg.code.image = 'openzipkin/zipkin'; } else if (policy.value == 'jaeger') { dtraceCfg.code.image = 'jaegertracing/all-in-one'; dtraceCfg.environment["COLLECTOR_ZIPKIN_HTTP_PORT"] = "9411"; dtraceCfg.provides["web"] = { port: 16686, protocol: 'http' } } var dtraceSvcId = compiler._addImpicit(dtraceCfg); if (policy.value == 'zipkin') { compiler.addClusterProvided(dtraceCfg.cluster, "dtrace", { sector: dtraceCfg.sector, service: dtraceCfg.name, endpoint: 'client', public: true }); compiler.addClusterProvided(dtraceCfg.cluster, "dtrep", { sector: dtraceCfg.sector, service: dtraceCfg.name, endpoint: 'client' }); } else if (policy.value == 'jaeger') { compiler.addClusterProvided(dtraceCfg.cluster, "dtrace", { sector: dtraceCfg.sector, service: dtraceCfg.name, endpoint: 'web', public: true }) compiler.addClusterProvided(dtraceCfg.cluster, "dtrep", { sector: dtraceCfg.sector, service: dtraceCfg.name, endpoint: 'client' }) } for(var service of registry.services) { if (service.isCompiled) { continue } if (service.isImplicit) { continue; } compiler.addConsumes(service.id, { cluster: dtraceCfg.cluster, endpoint: 'dtrep' }); } } }