mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-16 14:11:30 +08:00
347 lines
6.5 KiB
TypeScript
347 lines
6.5 KiB
TypeScript
import ROUTES from 'constants/routes';
|
|
|
|
import { ModuleProps } from '../OnboardingContainer';
|
|
import { DataSourceType } from '../Steps/DataSource/DataSource';
|
|
|
|
export enum ModulesMap {
|
|
APM = 'APM',
|
|
LogsManagement = 'LogsManagement',
|
|
InfrastructureMonitoring = 'InfrastructureMonitoring',
|
|
AwsMonitoring = 'AwsMonitoring',
|
|
}
|
|
|
|
export const frameworksMap = {
|
|
APM: {
|
|
java: [
|
|
{
|
|
value: 'springBoot',
|
|
label: 'Spring Boot',
|
|
},
|
|
{
|
|
value: 'tomcat',
|
|
label: 'Tomcat',
|
|
},
|
|
{
|
|
value: 'jboss',
|
|
label: 'JBoss',
|
|
},
|
|
{
|
|
value: 'other',
|
|
label: 'Others',
|
|
},
|
|
],
|
|
javascript: [
|
|
{
|
|
value: 'express',
|
|
label: 'Express',
|
|
},
|
|
{
|
|
value: 'nestjs',
|
|
label: 'Nest JS',
|
|
},
|
|
{
|
|
value: 'nodejs',
|
|
label: 'Nodejs',
|
|
},
|
|
{
|
|
value: 'reactjs',
|
|
label: 'React JS',
|
|
},
|
|
{
|
|
value: 'others',
|
|
label: 'Other Web Instrumentation',
|
|
},
|
|
],
|
|
python: [
|
|
{
|
|
value: 'django',
|
|
label: 'Django',
|
|
},
|
|
{
|
|
value: 'fastAPI',
|
|
label: 'Fast API',
|
|
},
|
|
{
|
|
value: 'flask',
|
|
label: 'Flask',
|
|
},
|
|
{
|
|
value: 'falcon',
|
|
label: 'Falcon',
|
|
},
|
|
{
|
|
value: 'other',
|
|
label: 'Others',
|
|
},
|
|
],
|
|
},
|
|
LogsManagement: {},
|
|
InfrastructureMonitoring: {},
|
|
AwsMonitoring: {},
|
|
};
|
|
|
|
export const defaultApplicationDataSource = {
|
|
name: 'java',
|
|
id: 'java',
|
|
imgURL: `Logos/java.png`,
|
|
};
|
|
|
|
const supportedLanguages = [
|
|
{
|
|
name: 'java',
|
|
id: 'java',
|
|
imgURL: `/Logos/java.png`,
|
|
},
|
|
{
|
|
name: 'python',
|
|
id: 'python',
|
|
imgURL: `/Logos/python.png`,
|
|
},
|
|
{
|
|
name: 'go',
|
|
id: 'go',
|
|
imgURL: `/Logos/go.png`,
|
|
},
|
|
{
|
|
name: 'javascript',
|
|
id: 'javascript',
|
|
imgURL: `/Logos/javascript.png`,
|
|
},
|
|
{
|
|
name: 'rails',
|
|
id: 'rails',
|
|
imgURL: `/Logos/rails.png`,
|
|
},
|
|
{
|
|
name: '.NET',
|
|
id: 'dotnet',
|
|
imgURL: `/Logos/dotnet.png`,
|
|
},
|
|
{
|
|
name: 'rust',
|
|
id: 'rust',
|
|
imgURL: `/Logos/rust.png`,
|
|
},
|
|
{
|
|
name: 'elixir',
|
|
id: 'elixir',
|
|
imgURL: `/Logos/elixir.png`,
|
|
},
|
|
{
|
|
name: 'swift',
|
|
id: 'swift',
|
|
imgURL: `/Logos/swift.png`,
|
|
},
|
|
{
|
|
name: 'php',
|
|
id: 'php',
|
|
imgURL: `/Logos/php.png`,
|
|
},
|
|
];
|
|
|
|
export const defaultLogsType = {
|
|
name: 'Kubernetes Pod Logs',
|
|
id: 'kubernetes',
|
|
imgURL: `/Logos/kubernetes.svg`,
|
|
};
|
|
|
|
const supportedLogsTypes = [
|
|
{
|
|
name: 'Kubernetes Pod Logs',
|
|
id: 'kubernetes',
|
|
imgURL: `/Logos/kubernetes.svg`,
|
|
},
|
|
{
|
|
name: 'Docker Container Logs',
|
|
id: 'docker',
|
|
imgURL: `/Logos/docker.svg`,
|
|
},
|
|
{
|
|
name: 'SysLogs',
|
|
id: 'syslogs',
|
|
imgURL: `/Logos/syslogs.svg`,
|
|
},
|
|
{
|
|
name: 'Application Logs',
|
|
id: 'application_logs',
|
|
imgURL: `/Logos/software-window.svg`,
|
|
},
|
|
{
|
|
name: 'FluentBit',
|
|
id: 'fluentBit',
|
|
imgURL: `/Logos/fluent-bit.png`,
|
|
},
|
|
{
|
|
name: 'FluentD',
|
|
id: 'fluentD',
|
|
imgURL: `/Logos/fluentd.png`,
|
|
},
|
|
{
|
|
name: 'LogStash',
|
|
id: 'logStash',
|
|
imgURL: `/Logos/logstash.svg`,
|
|
},
|
|
{
|
|
name: 'Heroku',
|
|
id: 'heroku',
|
|
imgURL: `/Logos/heroku.png`,
|
|
},
|
|
{
|
|
name: 'Vercel',
|
|
id: 'vercel',
|
|
imgURL: `/Logos/vercel.png`,
|
|
},
|
|
{
|
|
name: 'HTTP',
|
|
id: 'http',
|
|
imgURL: `/Logos/http.png`,
|
|
},
|
|
{
|
|
name: 'Cloudwatch',
|
|
id: 'cloudwatch',
|
|
imgURL: `/Logos/cloudwatch.png`,
|
|
},
|
|
];
|
|
|
|
export const defaultInfraMetricsType = {
|
|
name: 'Kubernetes Infra Metrics',
|
|
id: 'kubernetesInfraMetrics',
|
|
imgURL: `/Logos/kubernetes.svg`,
|
|
};
|
|
|
|
const supportedInfraMetrics = [
|
|
{
|
|
name: 'Kubernetes Infra Metrics',
|
|
id: 'kubernetesInfraMetrics',
|
|
imgURL: `/Logos/kubernetes.svg`,
|
|
},
|
|
{
|
|
name: 'HostMetrics',
|
|
id: 'hostMetrics',
|
|
imgURL: `/Logos/software-window.svg`,
|
|
},
|
|
{
|
|
name: 'Other Metrics',
|
|
id: 'otherMetrics',
|
|
imgURL: `/Logos/cmd-terminal.svg`,
|
|
},
|
|
];
|
|
|
|
export const defaultAwsServices = {
|
|
name: 'EC2 - App/Server Logs',
|
|
id: 'awsEc2ApplicationLogs',
|
|
imgURL: `/Logos/ec2.svg`,
|
|
};
|
|
|
|
const supportedAwsServices = [
|
|
{
|
|
name: 'EC2 - App/Server Logs',
|
|
id: 'awsEc2ApplicationLogs',
|
|
imgURL: `/Logos/ec2.svg`,
|
|
},
|
|
{
|
|
name: 'EC2 - Infra Metrics',
|
|
id: 'awsEc2InfrastructureMetrics',
|
|
imgURL: `/Logos/ec2.svg`,
|
|
},
|
|
{
|
|
name: 'ECS - EC2',
|
|
id: 'awsEcsEc2',
|
|
imgURL: `/Logos/ecs.svg`,
|
|
},
|
|
{
|
|
name: 'ECS - Fargate',
|
|
id: 'awsEcsFargate',
|
|
imgURL: `/Logos/ecs.svg`,
|
|
},
|
|
{
|
|
name: 'ECS - External',
|
|
id: 'awsEcsExternal',
|
|
imgURL: `/Logos/ecs.svg`,
|
|
},
|
|
{
|
|
name: 'EKS',
|
|
id: 'awsEks',
|
|
imgURL: `/Logos/eks.svg`,
|
|
},
|
|
];
|
|
|
|
export const getDataSources = (module: ModuleProps): DataSourceType[] => {
|
|
if (module.id === ModulesMap.APM) {
|
|
return supportedLanguages;
|
|
}
|
|
|
|
if (module.id === ModulesMap.InfrastructureMonitoring) {
|
|
return supportedInfraMetrics;
|
|
}
|
|
|
|
if (module.id === ModulesMap.LogsManagement) {
|
|
return supportedLogsTypes;
|
|
}
|
|
|
|
return supportedAwsServices;
|
|
};
|
|
|
|
export const getSupportedFrameworks = ({
|
|
module,
|
|
dataSource,
|
|
}: {
|
|
module: ModuleProps;
|
|
dataSource: DataSourceType;
|
|
}): [] => {
|
|
const { id: moduleID } = module;
|
|
const { name: dataSourceName } = dataSource;
|
|
|
|
if (
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'go') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'rails') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === '.NET') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'rust') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'elixir') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'swift') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'php')
|
|
) {
|
|
return [];
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
return frameworksMap[moduleID][dataSourceName];
|
|
};
|
|
|
|
export const hasFrameworks = ({
|
|
module,
|
|
dataSource,
|
|
}: {
|
|
module: ModuleProps;
|
|
dataSource: any;
|
|
}): boolean => {
|
|
const { id: moduleID } = module;
|
|
const { name: dataSourceName } = dataSource;
|
|
|
|
// eslint-disable-next-line sonarjs/prefer-single-boolean-return
|
|
if (
|
|
moduleID === ModulesMap.LogsManagement ||
|
|
moduleID === ModulesMap.InfrastructureMonitoring ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'go') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'rails') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === '.NET') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'rust') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'elixir') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'swift') ||
|
|
(moduleID === ModulesMap.APM && dataSourceName === 'php')
|
|
) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
};
|
|
|
|
export const moduleRouteMap = {
|
|
[ModulesMap.APM]: ROUTES.GET_STARTED_APPLICATION_MONITORING,
|
|
[ModulesMap.LogsManagement]: ROUTES.GET_STARTED_LOGS_MANAGEMENT,
|
|
[ModulesMap.InfrastructureMonitoring]:
|
|
ROUTES.GET_STARTED_INFRASTRUCTURE_MONITORING,
|
|
[ModulesMap.AwsMonitoring]: ROUTES.GET_STARTED_AWS_MONITORING,
|
|
};
|