mirror of
https://github.com/hanzoai/o11y.git
synced 2026-10-15 12:58:33 +00:00
# Conflicts: # .github/workflows/build-community.yaml # .github/workflows/build-enterprise.yaml # .github/workflows/gor-signoz-community.yaml # cmd/community/Dockerfile # cmd/community/Dockerfile.multi-arch # cmd/community/main.go # cmd/community/server.go # cmd/enterprise/Dockerfile # cmd/enterprise/Dockerfile.integration # cmd/enterprise/Dockerfile.with-web.integration # cmd/server/metastore.go # cmd/zap.go # conf/prometheus.yml # deploy/docker-swarm/generator/hotrod/docker-compose.yaml # deploy/docker-swarm/generator/infra/docker-compose.yaml # deploy/docker-swarm/generator/infra/otel-agent-config.yaml # deploy/docker-swarm/generator/infra/otel-metrics-config.yaml # deploy/docker/generator/hotrod/docker-compose.yaml # deploy/docker/generator/infra/docker-compose.yaml # deploy/docker/generator/infra/otel-collector-config.yaml # docs/contributing/go/integration.md # ee/anomaly/hourly.go # ee/anomaly/params.go # ee/anomaly/seasonal.go # ee/authn/callbackauthn/oidccallbackauthn/authn.go # ee/authz/openfgaauthz/provider.go # ee/authz/openfgaschema/base.fga # ee/authz/openfgaserver/server.go # ee/licensing/config.go # ee/licensing/httplicensing/provider.go # ee/modules/dashboard/impldashboard/module.go # ee/querier/handler.go # ee/query-service/anomaly/seasonal.go # ee/query-service/app/api/cloudIntegrations.go # ee/query-service/app/api/featureFlags.go # ee/query-service/app/api/license.go # ee/query-service/app/api/queryrange.go # ee/query-service/rules/anomaly.go # ee/query-service/rules/anomaly_test.go # ee/query-service/rules/manager.go # ee/query-service/rules/manager_test.go # ee/query-service/usage/manager.go # ee/sqlschema/postgressqlschema/provider.go # ee/sqlstore/postgressqlstore/dialect.go # ee/sqlstore/postgressqlstore/provider.go # ee/zeus/config.go # ee/zeus/httpzeus/provider.go # frontend/.eslintrc.cjs # frontend/e2e/test-plan/README.md # frontend/e2e/test-plan/validation-report.md # frontend/e2e/tests/settings/account-settings/account-settings-settings.spec.ts # frontend/e2e/tests/settings/api-keys/api-keys-settings.spec.ts # frontend/playwright.config.ts # frontend/public/Images/signoz-hero-image.webp # frontend/public/Logos/signoz-brand-logo.svg # frontend/scripts/generate-permissions-type.cjs # frontend/src/assets/Images/o11y-hero-image.webp # frontend/src/assets/Images/signoz-hero-image.webp # frontend/src/assets/Logos/hanzo-brand-logo.svg # frontend/src/assets/Logos/hanzo-icon.svg # frontend/src/assets/Logos/o11y-brand-logo.svg # frontend/src/assets/Logos/signoz-brand-logo.svg # frontend/src/assets/SigNoz-dark.svg # frontend/src/assets/SigNoz-white.svg # frontend/src/assets/signoz.svg # frontend/src/components/DetailsDrawer/DetailsDrawer.styles.scss # frontend/src/components/HostMetricsDetail/HostMetricTraces/HostMetricTraces.styles.scss # frontend/src/components/HostMetricsDetail/HostMetricTraces/constants.ts # frontend/src/components/HostMetricsDetail/HostMetricsDetail.styles.scss # frontend/src/components/HostMetricsDetail/HostMetricsDetails.tsx # frontend/src/components/HostMetricsDetail/HostMetricsLogs/NoLogsContainer.tsx # frontend/src/components/HostMetricsDetail/HostMetricsLogs/constants.ts # frontend/src/components/LogsDownloadOptionsMenu/LogsDownloadOptionsMenu.styles.scss # frontend/src/components/WelcomeLeftContainer/index.tsx # frontend/src/container/APIKeys/APIKeys.styles.scss # frontend/src/container/APIKeys/APIKeys.test.tsx # frontend/src/container/APIKeys/APIKeys.tsx # frontend/src/container/CloudIntegrationPage/Header/Header.tsx # frontend/src/container/CloudIntegrationPage/HeroSection/HeroSection.tsx # frontend/src/container/CloudIntegrationPage/HeroSection/components/AccountActions.style.scss # frontend/src/container/CloudIntegrationPage/HeroSection/components/AccountActions.tsx # frontend/src/container/CloudIntegrationPage/HeroSection/components/AccountSettingsModal.style.scss # frontend/src/container/CloudIntegrationPage/HeroSection/components/AccountSettingsModal.tsx # frontend/src/container/CloudIntegrationPage/HeroSection/components/CloudAccountSetupModal.style.scss # frontend/src/container/CloudIntegrationPage/HeroSection/components/RemoveIntegrationAccount.tsx # frontend/src/container/CloudIntegrationPage/ServicesSection/ConfigureServiceModal.tsx # frontend/src/container/CloudIntegrationPage/ServicesSection/ServicesTabs.style.scss # frontend/src/container/CloudIntegrationPage/ServicesSection/ServicesTabs.tsx # frontend/src/container/DashboardContainer/DashboardSettings/General/AddTags/AddTags.styles.scss # frontend/src/container/DashboardContainer/DashboardSettings/General/GeneralSettings.styles.scss # frontend/src/container/FormAlertRules/ChQuerySection/ChQuerySection.tsx # frontend/src/container/FormAlertRules/UserGuide/index.tsx # frontend/src/container/InfraMonitoringHosts/HostsEmptyOrIncorrectMetrics.tsx # frontend/src/container/InfraMonitoringHosts/InfraMonitoring.styles.scss # frontend/src/container/InfraMonitoringHosts/__tests__/HostsEmptyOrIncorrectMetrics.test.tsx # frontend/src/container/InfraMonitoringK8s/Clusters/ClusterDetails/ClusterDetails.tsx # frontend/src/container/InfraMonitoringK8s/Clusters/utils.tsx # frontend/src/container/InfraMonitoringK8s/DaemonSets/DaemonSetDetails/DaemonSetDetails.tsx # frontend/src/container/InfraMonitoringK8s/DaemonSets/utils.tsx # frontend/src/container/InfraMonitoringK8s/Deployments/DeploymentDetails/DeploymentDetails.tsx # frontend/src/container/InfraMonitoringK8s/Deployments/utils.tsx # frontend/src/container/InfraMonitoringK8s/EntityDetailsUtils/EntityEvents/entityEvents.styles.scss # frontend/src/container/InfraMonitoringK8s/EntityDetailsUtils/EntityTraces/entityTraces.styles.scss # frontend/src/container/InfraMonitoringK8s/InfraMonitoringK8s.styles.scss # frontend/src/container/InfraMonitoringK8s/Jobs/JobDetails/JobDetails.tsx # frontend/src/container/InfraMonitoringK8s/Jobs/utils.tsx # frontend/src/container/InfraMonitoringK8s/K8sEmptyOrIncorrectMetrics.tsx # frontend/src/container/InfraMonitoringK8s/K8sFiltersSidePanel/K8sFiltersSidePanel.styles.scss # frontend/src/container/InfraMonitoringK8s/Namespaces/NamespaceDetails/NamespaceDetails.styles.scss # frontend/src/container/InfraMonitoringK8s/Namespaces/NamespaceDetails/NamespaceDetails.tsx # frontend/src/container/InfraMonitoringK8s/Namespaces/utils.tsx # frontend/src/container/InfraMonitoringK8s/Nodes/NodeDetails/NodeDetails.tsx # frontend/src/container/InfraMonitoringK8s/Nodes/utils.tsx # frontend/src/container/InfraMonitoringK8s/Pods/PodDetails/PodDetails.tsx # frontend/src/container/InfraMonitoringK8s/StatefulSets/StatefulSetDetails/StatefulSetDetails.tsx # frontend/src/container/InfraMonitoringK8s/StatefulSets/utils.tsx # frontend/src/container/InfraMonitoringK8s/Volumes/VolumeDetails/VolumeDetails.tsx # frontend/src/container/InfraMonitoringK8s/Volumes/utils.tsx # frontend/src/container/ListAlertRules/AlertsEmptyState/AlertsEmptyState.styles.scss # frontend/src/container/ListAlertRules/ListAlert.tsx # frontend/src/container/LogsContextList/styles.ts # frontend/src/container/LogsExplorerList/ColumnView/ColumnView.tsx # frontend/src/container/LogsExplorerViews/QueryStatus.tsx # frontend/src/container/MetricsApplication/Tabs/Overview/ApDex/ApDexTraces.tsx # frontend/src/container/MetricsExplorer/Explorer/RelatedMetrics.tsx # frontend/src/container/MetricsExplorer/Explorer/useGetRelatedMetricsGraphs.ts # frontend/src/container/MetricsExplorer/Summary/MetricTypeSearch.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/ClickHouse/index.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/ClickHouse/query.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/index.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/query.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/datastore/index.tsx # frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/datastore/query.tsx # frontend/src/container/OnboardingQuestionaire/OnboardingFooter/OnboardingFooter.tsx # frontend/src/container/OnboardingQuestionaire/OnboardingHeader/OnboardingHeader.styles.scss # frontend/src/container/OnboardingQuestionaire/OnboardingHeader/OnboardingHeader.tsx # frontend/src/container/OnboardingV2Container/onboarding-configs/onboarding-config-with-links.json # frontend/src/container/QueryBuilder/QueryBuilder.tsx # frontend/src/container/QueryBuilder/components/Query/Query.tsx # frontend/src/container/RolesSettings/__tests__/utils.test.ts # frontend/src/container/ServiceTable/SkipOnBoardModal/index.tsx # frontend/src/container/TraceDetail/Missingtrace.tsx # frontend/src/container/TraceDetail/SelectedSpanDetails/config.ts # frontend/src/lib/uPlotV2/components/Tooltip/Tooltip.styles.scss # frontend/src/mocks-server/__mockdata__/apiKeys.ts # frontend/src/pages/AlertDetails/AlertHeader/AlertStatus/AlertStatus.tsx # frontend/src/pages/Integrations/IntegrationDetailPage/IntegrationDetailPage.styles.scss # frontend/src/pages/Integrations/IntegrationDetailPage/IntegrationDetailPage.tsx # frontend/src/pages/Integrations/IntegrationsList.tsx # frontend/src/pages/Integrations/utils.ts # frontend/src/types/api/integrations/aws.ts # pkg/alertmanager/o11yalertmanager/handler.go # pkg/apiserver/o11yapiserver/alertmanager.go # pkg/apiserver/o11yapiserver/cloudintegration.go # pkg/apiserver/o11yapiserver/inframonitoring.go # pkg/apiserver/o11yapiserver/llmpricingrule.go # pkg/apiserver/o11yapiserver/rawdataexport.go # pkg/apiserver/o11yapiserver/registry.go # pkg/apiserver/o11yapiserver/ruler.go # pkg/apiserver/o11yapiserver/ruler_examples.go # pkg/apiserver/o11yapiserver/ruler_examples_test.go # pkg/apiserver/o11yapiserver/rulestatehistory.go # pkg/apiserver/o11yapiserver/spanmapper.go # pkg/apiserver/o11yapiserver/tracedetail.go # pkg/authn/callbackauthn/googlecallbackauthn/authn.go # pkg/authz/openfgaauthz/provider.go # pkg/authz/openfgaschema/base.fga # pkg/authz/openfgaserver/server.go # pkg/authz/openfgaserver/server_test.go # pkg/authz/openfgaserver/sqlstore.go # pkg/http/middleware/api_key.go # pkg/http/middleware/authn.go # pkg/instrumentation/metric.go # pkg/modules/user/impluser/module.go # pkg/prometheus/clickhouseprometheus/client.go # pkg/prometheus/clickhouseprometheus/client_query_test.go # pkg/prometheus/clickhouseprometheus/provider.go # pkg/prometheus/config.go # pkg/prometheus/engine.go # pkg/prometheus/label.go # pkg/prometheus/prometheus.go # pkg/prometheus/prometheustest/provider.go # pkg/prometheus/prometheustest/utils_test.go # pkg/querier/promql_query.go # pkg/query-service/app/cloudintegrations/Readme.md # pkg/query-service/app/cloudintegrations/accountsRepo.go # pkg/query-service/app/cloudintegrations/constants.go # pkg/query-service/app/cloudintegrations/controller.go # pkg/query-service/app/cloudintegrations/models.go # pkg/query-service/app/cloudintegrations/serviceconfig_db.go # pkg/query-service/app/cloudintegrations/services/definitions/aws/eks/assets/dashboards/containerinsights.json # pkg/query-service/app/cloudintegrations/services/definitions/aws/eks/assets/dashboards/containerinsights_dot.json # pkg/query-service/app/cloudintegrations/services/definitions/aws/eks/assets/dashboards/overview.json # pkg/query-service/app/cloudintegrations/services/definitions/aws/eks/assets/dashboards/overview_dot.json # pkg/query-service/app/cloudintegrations/services/models.go # pkg/query-service/app/cloudintegrations/services/services.go # pkg/query-service/app/cloudintegrations/services/services_test.go # pkg/query-service/app/integrations/builtin_integrations/clickhouse/assets/dashboards/overview_dot.json # pkg/query-service/app/integrations/builtin_integrations/datastore/assets/dashboards/overview_dot.json # pkg/query-service/app/metricsexplorer/parser.go # pkg/query-service/app/metricsexplorer/summary.go # pkg/query-service/app/querier/querier_test.go # pkg/query-service/app/querier/v2/querier_test.go # pkg/query-service/app/summary.go # pkg/query-service/model/metrics_explorer/summary.go # pkg/query-service/rules/base_rule_test.go # pkg/query-service/rules/manager_test.go # pkg/query-service/rules/prom_rule.go # pkg/query-service/rules/prom_rule_task.go # pkg/query-service/rules/prom_rule_test.go # pkg/query-service/rules/threshold_rule_test.go # pkg/querybuilder/resourcefilter/tables.go # pkg/queryparser/queryfilterextractor/promql.go # pkg/ruler/o11yruler/handler.go # pkg/sqlmigration/088_migrate_ii_dashboards/clickhouse/overview.json # pkg/telemetrymetadata/metadata_test.go # pkg/telemetrystore/datastoretelemetrystore/telemetry.go # pkg/types/authtypes/name.go # pkg/types/authtypes/object.go # pkg/types/authtypes/selector.go # pkg/types/authtypes/typeable.go # pkg/types/authtypes/typeable_anonymous.go # pkg/types/authtypes/typeable_metaresource.go # pkg/types/authtypes/typeable_metaresources.go # pkg/types/authtypes/typeable_organization.go # pkg/types/authtypes/typeable_role.go # pkg/types/authtypes/typeable_user.go # pkg/types/authtypes/uuid.go # pkg/types/ctxtypes/auth.go # pkg/types/factor_api_key.go # pkg/types/integrationtypes/integration.go # pkg/types/roletypes/store.go # pkg/types/ruletypes/maintenance.go # pkg/types/serviceaccounttypes/service_account_role.go # pkg/types/serviceaccounttypes/store.go
149 lines
4.6 KiB
Go
149 lines
4.6 KiB
Go
package units
|
|
|
|
const (
|
|
// base 10 (SI prefixes).
|
|
BitPerSecond float64 = 1e0
|
|
KilobitPerSecond = BitPerSecond * 1e3
|
|
MegabitPerSecond = BitPerSecond * 1e6
|
|
GigabitPerSecond = BitPerSecond * 1e9
|
|
TerabitPerSecond = BitPerSecond * 1e12
|
|
PetabitPerSecond = BitPerSecond * 1e15
|
|
ExabitPerSecond = BitPerSecond * 1e18
|
|
ZettabitPerSecond = BitPerSecond * 1e21
|
|
YottabitPerSecond = BitPerSecond * 1e24
|
|
|
|
BytePerSecond = BitPerSecond * 8
|
|
KilobytePerSecond = BytePerSecond * 1e3
|
|
MegabytePerSecond = BytePerSecond * 1e6
|
|
GigabytePerSecond = BytePerSecond * 1e9
|
|
TerabytePerSecond = BytePerSecond * 1e12
|
|
PetabytePerSecond = BytePerSecond * 1e15
|
|
ExabytePerSecond = BytePerSecond * 1e18
|
|
ZettabytePerSecond = BytePerSecond * 1e21
|
|
YottabytePerSecond = BytePerSecond * 1e24
|
|
|
|
// base 2 (IEC prefixes).
|
|
KibibitPerSecond = BitPerSecond * 1024
|
|
MebibitPerSecond = KibibitPerSecond * 1024
|
|
GibibitPerSecond = MebibitPerSecond * 1024
|
|
TebibitPerSecond = GibibitPerSecond * 1024
|
|
PebibitPerSecond = TebibitPerSecond * 1024
|
|
ExbibitPerSecond = PebibitPerSecond * 1024
|
|
ZebibitPerSecond = ExbibitPerSecond * 1024
|
|
YobibitPerSecond = ZebibitPerSecond * 1024
|
|
|
|
KibibytePerSecond = BytePerSecond * 1024
|
|
MebibytePerSecond = KibibytePerSecond * 1024
|
|
GibibytePerSecond = MebibytePerSecond * 1024
|
|
TebibytePerSecond = GibibytePerSecond * 1024
|
|
PebibytePerSecond = TebibytePerSecond * 1024
|
|
ExbibytePerSecond = PebibytePerSecond * 1024
|
|
ZebibytePerSecond = ExbibytePerSecond * 1024
|
|
YobibytePerSecond = ZebibytePerSecond * 1024
|
|
)
|
|
|
|
// dataRateConverter is a Converter implementation for data rates.
|
|
type dataRateConverter struct {
|
|
}
|
|
|
|
func NewDataRateConverter() Converter {
|
|
return &dataRateConverter{}
|
|
}
|
|
|
|
func (*dataRateConverter) Name() string {
|
|
return "data_rate"
|
|
}
|
|
|
|
// Notation followed by UCUM:
|
|
// https://ucum.org/ucum
|
|
// kibi = Ki, mebi = Mi, gibi = Gi, tebi = Ti, pibi = Pi
|
|
// kilo = k, mega = M, giga = G, tera = T, peta = P
|
|
// exa = E, zetta = Z, yotta = Y
|
|
// byte = By, bit = bit.
|
|
func FromDataRateUnit(u Unit) float64 {
|
|
// See https://github.com/hanzoai/o11y/blob/5a81f5f90b34845f5b4b3bdd46acf29d04bf3987/frontend/src/container/NewWidget/RightContainer/dataFormatCategories.ts#L62-L85
|
|
switch u {
|
|
case "binBps": // bytes/sec(IEC)
|
|
return BytePerSecond
|
|
case "Bps", "By/s": // bytes/sec(SI)
|
|
return BytePerSecond
|
|
case "binbps": // bits/sec(IEC)
|
|
return BitPerSecond
|
|
case "bps", "bit/s": // bits/sec(SI)
|
|
return BitPerSecond
|
|
case "KiBs", "KiBy/s": // kibibytes/sec
|
|
return KibibytePerSecond
|
|
case "Kibits", "Kibit/s": // kibibits/sec
|
|
return KibibitPerSecond
|
|
case "KBs", "kBy/s": // kilobytes/sec
|
|
return KilobytePerSecond
|
|
case "Kbits", "kbit/s": // kilobits/sec
|
|
return KilobitPerSecond
|
|
case "MiBs", "MiBy/s": // mebibytes/sec
|
|
return MebibytePerSecond
|
|
case "Mibits", "Mibit/s": // mebibits/sec
|
|
return MebibitPerSecond
|
|
case "MBs", "MBy/s": // megabytes/sec
|
|
return MegabytePerSecond
|
|
case "Mbits", "Mbit/s": // megabits/sec
|
|
return MegabitPerSecond
|
|
case "GiBs", "GiBy/s": // gibibytes/sec
|
|
return GibibytePerSecond
|
|
case "Gibits", "Gibit/s": // gibibits/sec
|
|
return GibibitPerSecond
|
|
case "GBs", "GBy/s": // gigabytes/sec
|
|
return GigabytePerSecond
|
|
case "Gbits", "Gbit/s": // gigabits/sec
|
|
return GigabitPerSecond
|
|
case "TiBs", "TiBy/s": // tebibytes/sec
|
|
return TebibytePerSecond
|
|
case "Tibits", "Tibit/s": // tebibits/sec
|
|
return TebibitPerSecond
|
|
case "TBs", "TBy/s": // terabytes/sec
|
|
return TerabytePerSecond
|
|
case "Tbits", "Tbit/s": // terabits/sec
|
|
return TerabitPerSecond
|
|
case "PiBs", "PiBy/s": // pebibytes/sec
|
|
return PebibytePerSecond
|
|
case "Pibits", "Pibit/s": // pebibits/sec
|
|
return PebibitPerSecond
|
|
case "PBs", "PBy/s": // petabytes/sec
|
|
return PetabytePerSecond
|
|
case "Pbits", "Pbit/s": // petabits/sec
|
|
return PetabitPerSecond
|
|
case "EBy/s": // exabytes/sec
|
|
return ExabytePerSecond
|
|
case "Ebit/s": // exabits/sec
|
|
return ExabitPerSecond
|
|
case "EiBy/s": // exbibytes/sec
|
|
return ExbibytePerSecond
|
|
case "Eibit/s": // exbibits/sec
|
|
return ExbibitPerSecond
|
|
case "ZBy/s": // zettabytes/sec
|
|
return ZettabytePerSecond
|
|
case "Zbit/s": // zettabits/sec
|
|
return ZettabitPerSecond
|
|
case "ZiBy/s": // zebibytes/sec
|
|
return ZebibytePerSecond
|
|
case "Zibit/s": // zebibits/sec
|
|
return ZebibitPerSecond
|
|
case "YBy/s": // yottabytes/sec
|
|
return YottabytePerSecond
|
|
case "Ybit/s": // yottabits/sec
|
|
return YottabitPerSecond
|
|
case "YiBy/s": // yobibytes/sec
|
|
return YobibytePerSecond
|
|
case "Yibit/s": // yobibits/sec
|
|
return YobibitPerSecond
|
|
default:
|
|
return 1
|
|
}
|
|
}
|
|
|
|
func (c *dataRateConverter) Convert(v Value, to Unit) Value {
|
|
return Value{
|
|
F: v.F * FromDataRateUnit(v.U) / FromDataRateUnit(to),
|
|
U: to,
|
|
}
|
|
}
|