* debrand: signoz/SigNoz/SIGNOZ -> o11y/O11y/O11Y across the tree Rename all SigNoz *branding* to O11y in file contents, file/dir names, package names, env vars, config keys, comments, docs, SDK code, and the ClickHouse schema identifiers the querier reads. Collector dependency: - Repoint github.com/hanzoai/signoz-otel-collector -> github.com/hanzoai/otel-collector and bump v0.144.6 -> v0.144.7 (go.mod + go.sum reconciled via go mod tidy). Internal package paths also debranded upstream: signozschemamigrator -> o11yschemamigrator, signozlogspipelineprocessor -> o11ylogspipelineprocessor. - Fix: v0.144.7 dropped otelconst.DistributedFieldKeysTable from the collector's public constants; pin FieldKeysTable = "distributed_field_keys" locally in pkg/telemetrymetadata/tables.go. Package/dir renames (package decl + all importers): pkg/apiserver/signozapiserver -> o11yapiserver, plus signozalertmanager, signozauthzapi, signozglobal, signozquerier, signozruler, and pkg/signoz -> pkg/o11y. Schema (read plane): signoz_traces/metrics/logs/metadata/analytics/meter and signoz_index_v3/index_v2/error_index_v2/spans (+ distributed_*) -> o11y_*. Data-preserving cutover migration added: deploy/clickhouse/migrations/0001_rename_signoz_to_o11y.sql (metadata-only RENAME DATABASE/TABLE, no drop/recreate). Preserved (attribution / external / wire contracts): - LICENSE + NOTICE verbatim (incl. "software from SigNoz", "Copyright ... SigNoz Inc."). - Upstream github.com/SigNoz/* repo URLs + @SigNoz/* CODEOWNERS teams. - Billing resource-attribute regex "signoz.workspace.*" (external wire contract). go build ./pkg/... ./cmd/... = 0; gofmt clean; renamed+schema pkg tests pass. * o11y: bump collector to v0.144.8 (o11y_* physical schema writer) + lockstep deploy plan Collector v0.144.8's schema-migrator + exporters now CREATE/WRITE the same o11y_* physical databases/tables the querier reads and the RENAME migration (0001_rename_signoz_to_o11y.sql) targets. Cross-checked byte-identical: writer DB set == migration target DB set (6); writer prefixed-table set == migration target table set (8); o11y querier reads and cloud reads are subsets of that set. Zero table-name mismatches between writer, readers, and migration. Collector go.mod unchanged between v0.144.7 and v0.144.8 (identical go.mod hash) — pure source rename, no module-graph change. Adds deploy/clickhouse/DEPLOY_signoz_to_o11y_cutover.md: the lockstep order (collector v0.144.8 -> RENAME migration -> o11y+cloud readers) with a fresh/scratch-ClickHouse pre-flight (create via migrator, emit trace+metric, query back) and rollback. Ships together or telemetry blackholes. go build ./pkg/... ./cmd/community = 0.
92 lines
2.3 KiB
TypeScript
92 lines
2.3 KiB
TypeScript
import get from 'api/browser/localstorage/get';
|
|
import set from 'api/browser/localstorage/set';
|
|
import remove from 'api/browser/localstorage/remove';
|
|
import { create } from 'zustand';
|
|
|
|
const STORAGE_PREFIX = '@o11y/table-columns/';
|
|
const STORAGE_SUFFIX = '-preferred-page-size';
|
|
|
|
type PreferredPageSizeState = {
|
|
tables: Record<string, number | null>;
|
|
setPreferredPageSize: (storageKey: string, pageSize: number | null) => void;
|
|
};
|
|
|
|
const getStorageKey = (tableKey: string): string =>
|
|
`${STORAGE_PREFIX}${tableKey}${STORAGE_SUFFIX}`;
|
|
|
|
const loadFromStorage = (tableKey: string): number | null => {
|
|
try {
|
|
const raw = get(getStorageKey(tableKey));
|
|
if (!raw) {
|
|
return null;
|
|
}
|
|
const parsed = parseInt(raw, 10);
|
|
return Number.isNaN(parsed) ? null : parsed;
|
|
} catch {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
const saveToStorage = (tableKey: string, pageSize: number | null): void => {
|
|
try {
|
|
const key = getStorageKey(tableKey);
|
|
if (pageSize === null) {
|
|
remove(key);
|
|
} else {
|
|
set(key, String(pageSize));
|
|
}
|
|
} catch {
|
|
// Ignore storage errors
|
|
}
|
|
};
|
|
|
|
export const usePreferredPageSizeStore = create<PreferredPageSizeState>()(
|
|
(set, get) => ({
|
|
tables: {},
|
|
setPreferredPageSize: (storageKey, pageSize): void => {
|
|
set({ tables: { ...get().tables, [storageKey]: pageSize } });
|
|
saveToStorage(storageKey, pageSize);
|
|
},
|
|
}),
|
|
);
|
|
|
|
export function usePreferredPageSize(
|
|
storageKey: string | undefined,
|
|
): [number | null, (pageSize: number | null) => void] {
|
|
const pageSize = usePreferredPageSizeStore((s) => {
|
|
if (!storageKey) {
|
|
return null;
|
|
}
|
|
const cached = s.tables[storageKey];
|
|
if (cached !== undefined) {
|
|
return cached;
|
|
}
|
|
return loadFromStorage(storageKey);
|
|
});
|
|
|
|
const setPageSize = usePreferredPageSizeStore((s) => s.setPreferredPageSize);
|
|
|
|
const setPreferred = (size: number | null): void => {
|
|
if (storageKey) {
|
|
setPageSize(storageKey, size);
|
|
}
|
|
};
|
|
|
|
return [pageSize, setPreferred];
|
|
}
|
|
|
|
export function getPreferredPageSize(storageKey: string): number | null {
|
|
// oxlint-disable-next-line o11y/no-zustand-getstate-in-hooks
|
|
const state = usePreferredPageSizeStore.getState();
|
|
const cached = state.tables[storageKey];
|
|
if (cached !== undefined) {
|
|
return cached;
|
|
}
|
|
|
|
const stored = loadFromStorage(storageKey);
|
|
if (stored !== null) {
|
|
state.setPreferredPageSize(storageKey, stored);
|
|
}
|
|
return stored;
|
|
}
|