@skbkontur/node-core

1.4.0-rc.4 • Public • Published

Быстрый старт Node.js приложений на инфраструктуре Контура

В библиотеке есть всё что вам надо:

  • Логирование
  • Метрики и системный мониторинг
  • Обработка ошибок
  • Инициализация ClusterConfig'а
  • Трассировка запросов
  • Готовый провайдер для ClusterClient

Библиотека композирует модули и инициализирует компоненты.

Документация:

  • Гайд по инфраструктуре: guide.md
  • Подробнее о конфигурации Node.core: config.md
  • Управление стратегиями клиентов сервисов при помощи провайдеров: providers.md
  • О трассировках: tracing.md

Внутри данного модуля реализован набор middleware для веб фреймворка koa2. Если вы используете другой фремворк, вам необходимо реализовать middleware для него.

Пример использования с koa2:

const core = require('@skbkontur/node-core')

const auth = require('./src/middlewares/authentication')
const router = require('./src/middlewares/router')

const config = require('./src/config')

const Koa = require('koa')
const app = new Koa()

core.initClusterConfig(config.zone)
  .then((clusterConfig) => core.runApp(config, clusterConfig))
  .then(async function createApp(coreApp) {
    const { logger } = coreApp

    core.useCore(app, coreApp)

    app.use(auth)
    app.use(router())

    app.listen(config.port, () => {
      logger.info(`Application started at http://localhost:${config.port}`)
    })
  })

Компоненты

Ниже приведен список всех компонентов coreApp. Апи для их использования можно найти в соответствующих репозиториях:

https://www.npmjs.com/package/@skbkontur/cluster-config-client https://www.npmjs.com/package/@skbkontur/winston-kontur-logstash https://www.npmjs.com/package/@skbkontur/span-aggregator-client https://www.npmjs.com/package/@skbkontur/monitoring-client

const {    
  logger,
  clusterConfig,
  config,
  monitor,
  monitoringClient,
  spanAggregator,
  options
} = coreApp

Доступ к компонентам внутри koa.context

Если вы используете middleware для koa2 из этого репозитория, то вы имеете доступ к компонентам coreApp из контекста koa.

Пример:

app.use((ctx) => {
  ctx.core.logger.info('hello')
  ctx.core.clusterConfig.getSettingsByPrefix('topology/graphite-prod/')
  ctx.core.monitoringClient.send('metricName', 5)
})

Readme

Keywords

none

Package Sidebar

Install

npm i @skbkontur/node-core

Weekly Downloads

9

Version

1.4.0-rc.4

License

ISC

Unpacked Size

575 kB

Total Files

90

Last publish

Collaborators

  • dpeshkin
  • khlutkova
  • tihonove
  • ubitso4
  • zhzz
  • skbkontur-bot
  • fakefeik
  • original001
  • templeoftemplar
  • apocalyp0sys
  • lossir