mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-12 07:36:42 +08:00
refactor(server): config system (#11081)
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
import { defineStartupConfig, ModuleConfig } from '../../base/config';
|
||||
|
||||
export interface GCloudConfig {
|
||||
enabled: boolean;
|
||||
}
|
||||
declare module '../config' {
|
||||
interface PluginsConfig {
|
||||
gcloud: ModuleConfig<GCloudConfig>;
|
||||
}
|
||||
}
|
||||
|
||||
defineStartupConfig('plugins.gcloud', {
|
||||
enabled: false,
|
||||
});
|
||||
@@ -1,14 +1,10 @@
|
||||
import './config';
|
||||
import { Global, Module } from '@nestjs/common';
|
||||
|
||||
import { Global } from '@nestjs/common';
|
||||
|
||||
import { Plugin } from '../registry';
|
||||
import { GCloudLogging } from './logging';
|
||||
import { GCloudMetrics } from './metrics';
|
||||
|
||||
@Global()
|
||||
@Plugin({
|
||||
name: 'gcloud',
|
||||
@Module({
|
||||
imports: [GCloudMetrics, GCloudLogging],
|
||||
})
|
||||
export class GCloudModule {}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import { Global } from '@nestjs/common';
|
||||
import { Global, Module } from '@nestjs/common';
|
||||
|
||||
import { OptionalModule } from '../../../base';
|
||||
import { loggerProvider } from './service';
|
||||
import { LoggerProvider } from './service';
|
||||
|
||||
@Global()
|
||||
@OptionalModule({
|
||||
if: config => config.metrics.enabled,
|
||||
overrides: [loggerProvider],
|
||||
@Module({
|
||||
providers: [LoggerProvider],
|
||||
exports: [LoggerProvider],
|
||||
})
|
||||
export class GCloudLogging {}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ const moreMetadata = format(info => {
|
||||
return info;
|
||||
});
|
||||
|
||||
export const loggerProvider: Provider<LoggerService> = {
|
||||
export const LoggerProvider: Provider<LoggerService> = {
|
||||
provide: LoggerProvide,
|
||||
useFactory: () => {
|
||||
const instance = createLogger({
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { MetricExporter } from '@google-cloud/opentelemetry-cloud-monitoring-exporter';
|
||||
import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
|
||||
import { GcpDetectorSync } from '@google-cloud/opentelemetry-resource-util';
|
||||
import { Global, Provider } from '@nestjs/common';
|
||||
import { Global, Injectable, Module, Provider } from '@nestjs/common';
|
||||
import { getEnv } from '@opentelemetry/core';
|
||||
import { Resource } from '@opentelemetry/resources';
|
||||
import {
|
||||
@@ -14,9 +14,9 @@ import {
|
||||
SEMRESATTRS_K8S_POD_NAME,
|
||||
} from '@opentelemetry/semantic-conventions';
|
||||
|
||||
import { OptionalModule } from '../../base';
|
||||
import { OpentelemetryFactory } from '../../base/metrics';
|
||||
|
||||
@Injectable()
|
||||
export class GCloudOpentelemetryFactory extends OpentelemetryFactory {
|
||||
override getResource(): Resource {
|
||||
const env = getEnv();
|
||||
@@ -47,14 +47,14 @@ export class GCloudOpentelemetryFactory extends OpentelemetryFactory {
|
||||
}
|
||||
}
|
||||
|
||||
const factorProvider: Provider = {
|
||||
const FactorProvider: Provider = {
|
||||
provide: OpentelemetryFactory,
|
||||
useFactory: () => new GCloudOpentelemetryFactory(),
|
||||
useClass: GCloudOpentelemetryFactory,
|
||||
};
|
||||
|
||||
@Global()
|
||||
@OptionalModule({
|
||||
if: config => config.metrics.enabled,
|
||||
overrides: [factorProvider],
|
||||
@Module({
|
||||
providers: [FactorProvider],
|
||||
exports: [FactorProvider],
|
||||
})
|
||||
export class GCloudMetrics {}
|
||||
|
||||
Reference in New Issue
Block a user