950 lines
55 KiB
SQL
950 lines
55 KiB
SQL
-- =====================================================================
|
|
-- Omika Diagnostic Center — SEED PRÉPROD LOCAL (100 % FAKE DATA)
|
|
-- seed_diagnostics_preprod.sql — T21
|
|
-- =====================================================================
|
|
-- ⚠️ RÉSERVÉ À LA PRÉPROD LOCALE (base omika_diagnostics_preprod).
|
|
-- ⚠️ NE JAMAIS EXÉCUTER EN PRODUCTION.
|
|
-- ⚠️ Données 100 % SYNTHÉTIQUES : source='local-seed', message préfixé
|
|
-- '[FAKE LOCAL]'. Aucune donnée réelle, aucune donnée personnelle,
|
|
-- aucun token, aucun mot de passe, aucun CodeClient réel, aucun nom
|
|
-- de société cliente réelle, aucun nom de machine réel.
|
|
-- ⚠️ Ré-exécutable : DELETE source='local-seed' puis réinsertion.
|
|
-- Ne touche JAMAIS aux lignes réelles (source <> 'local-seed').
|
|
-- ⚠️ Ne crée AUCUN diagnostics_clients : les clients PREPROD-CLIENT-A/B
|
|
-- sont créés via l'interface /Clients (clé SHA-256 générée Web).
|
|
-- =====================================================================
|
|
|
|
-- Garde-fou : base préprod uniquement.
|
|
DO $$
|
|
BEGIN
|
|
IF current_database() <> 'omika_diagnostics_preprod' THEN
|
|
RAISE EXCEPTION 'REFUS : seed préprod uniquement sur omika_diagnostics_preprod (base détectée : %).', current_database();
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
-- Nettoyage idempotent du seed précédent (source = 'local-seed' uniquement).
|
|
DELETE FROM diagnostic_event WHERE source = 'local-seed';
|
|
|
|
-- =====================================================================
|
|
-- CONVENTIONS CLIENTS (T21 §7)
|
|
-- FAKE-CLIENT-A (fort volume) : API-A-01, WORKER-A-01 (Production)
|
|
-- FAKE-CLIENT-B (moyen) : API-B-01, WORKER-B-01 (Production),
|
|
-- API-B-STG-01 (Staging)
|
|
-- FAKE-CLIENT-C (faible) : API-C-DEV-01 (Development)
|
|
-- =====================================================================
|
|
|
|
-- =====================================================================
|
|
-- 1. VOLUME DE FOND MULTI-CLIENTS (HTTP API + Worker)
|
|
-- =====================================================================
|
|
|
|
-- 1.1 FAKE-CLIENT-A / API-A-01 / Production — 100 événements HTTP API.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2a000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
(ARRAY['P2','P3','P2','P1','P3'])[1 + (g % 5)],
|
|
(ARRAY['Info','Info','Debug','Warning','Info'])[1 + (g % 5)],
|
|
(ARRAY['OMK-API-HTTP-001','OMK-API-HTTP-002'])[1 + (g % 2)],
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
(ARRAY['fake-actor-001','fake-actor-002',NULL])[1 + (g % 3)],
|
|
1,
|
|
(ARRAY['1.0.0','1.1.0'])[1 + (g % 2)],
|
|
'api',
|
|
NULL,
|
|
'[FAKE LOCAL] api FAKE-CLIENT-A production ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[25,150,350,1200,NULL,80])[1 + (g % 6)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'
|
|
FROM generate_series(1, 100) AS g;
|
|
|
|
-- 1.2 FAKE-CLIENT-A / WORKER-A-01 / Production — 60 traitements Worker réussis.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2b000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
'P3',
|
|
(ARRAY['Info','Debug','Info'])[1 + (g % 3)],
|
|
'OMK-WKR-SYNC-001',
|
|
'Omika.Worker',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
(ARRAY['1.0.0','1.1.0'])[1 + (g % 2)],
|
|
'worker',
|
|
NULL,
|
|
'[FAKE LOCAL] worker FAKE-CLIENT-A production ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[300,450,600,900])[1 + (g % 4)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume","retryCount":0}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-A', 'WORKER-A-01', 'Production'
|
|
FROM generate_series(1, 60) AS g;
|
|
|
|
-- 1.3 FAKE-CLIENT-B / API-B-01 / Production — 50 événements HTTP API.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2c000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
(ARRAY['P2','P3','P2','P1','P3'])[1 + (g % 5)],
|
|
(ARRAY['Info','Info','Debug','Warning','Info'])[1 + (g % 5)],
|
|
(ARRAY['OMK-API-HTTP-001','OMK-API-HTTP-002'])[1 + (g % 2)],
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
(ARRAY['fake-actor-002','fake-actor-003',NULL])[1 + (g % 3)],
|
|
1,
|
|
(ARRAY['1.0.0','1.0.1'])[1 + (g % 2)],
|
|
'api',
|
|
NULL,
|
|
'[FAKE LOCAL] api FAKE-CLIENT-B production ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[30,140,360,1100,NULL,90])[1 + (g % 6)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'
|
|
FROM generate_series(1, 50) AS g;
|
|
|
|
-- 1.4 FAKE-CLIENT-B / WORKER-B-01 / Production — 25 traitements Worker réussis.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2d000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
'P3',
|
|
(ARRAY['Info','Debug','Info'])[1 + (g % 3)],
|
|
'OMK-WKR-SYNC-001',
|
|
'Omika.Worker',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
(ARRAY['1.0.0','1.0.1'])[1 + (g % 2)],
|
|
'worker',
|
|
NULL,
|
|
'[FAKE LOCAL] worker FAKE-CLIENT-B production ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[280,420,580,850])[1 + (g % 4)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume","retryCount":0}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-B', 'WORKER-B-01', 'Production'
|
|
FROM generate_series(1, 25) AS g;
|
|
|
|
-- 1.5 FAKE-CLIENT-B / API-B-STG-01 / Staging — 15 événements HTTP API.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
(ARRAY['P2','P3','P2'])[1 + (g % 3)],
|
|
(ARRAY['Info','Debug','Info'])[1 + (g % 3)],
|
|
(ARRAY['OMK-API-HTTP-001','OMK-API-HTTP-002'])[1 + (g % 2)],
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
'fake-actor-003', 1,
|
|
(ARRAY['1.0.1','1.1.0'])[1 + (g % 2)],
|
|
'api',
|
|
NULL,
|
|
'[FAKE LOCAL] api FAKE-CLIENT-B staging ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[40,150,380])[1 + (g % 3)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-B', 'API-B-STG-01', 'Staging'
|
|
FROM generate_series(1, 15) AS g;
|
|
|
|
-- 1.6 FAKE-CLIENT-C / API-C-DEV-01 / Development — 20 événements HTTP API.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2f000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - CASE (g % 4)
|
|
WHEN 0 THEN (random() * interval '6 hours')
|
|
WHEN 1 THEN interval '6 hours' + (random() * interval '18 hours')
|
|
WHEN 2 THEN interval '1 day' + (random() * interval '6 days')
|
|
ELSE interval '7 days' + (random() * interval '23 days')
|
|
END,
|
|
'P3',
|
|
(ARRAY['Info','Debug','Warning','Info'])[1 + (g % 4)],
|
|
(ARRAY['OMK-API-HTTP-001','OMK-API-HTTP-002'])[1 + (g % 2)],
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
'1.1.0',
|
|
'api',
|
|
NULL,
|
|
'[FAKE LOCAL] api FAKE-CLIENT-C development ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[35,160,400])[1 + (g % 3)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"volume"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development'
|
|
FROM generate_series(1, 20) AS g;
|
|
|
|
-- =====================================================================
|
|
-- 2. ERREURS FAKE (Info/Warning/Error/Critical + codes répétés, §15)
|
|
-- Normalisation component/error_code testée par variations casse/espaces.
|
|
-- =====================================================================
|
|
|
|
-- 2.1 TIMEOUT — 15 occurrences réparties A/B (variations de casse/espaces).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e100000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '7 days'),
|
|
'P1',
|
|
(ARRAY['Error','error'])[1 + (g % 2)],
|
|
'OMK-API-HTTP-003',
|
|
(ARRAY['Omika.Api',' omika.api ','OMIKA.API'])[1 + (g % 3)],
|
|
NULL, NULL, NULL,
|
|
'fake-actor-001', 1,
|
|
(ARRAY['1.0.0','1.1.0'])[1 + (g % 2)],
|
|
'api',
|
|
(ARRAY['TIMEOUT',' timeout ','timeout'])[1 + (g % 3)],
|
|
'[FAKE LOCAL] Timeout simulation ' || g,
|
|
(ARRAY['System.TimeoutException','system.timeoutexception'])[1 + (g % 2)],
|
|
E'[FAKE LOCAL]\nSystem.TimeoutException: operation timed out\n at Omika.Api.Tests.FakeService.Execute()',
|
|
(ARRAY[1500,2500,3000,5000])[1 + (g % 4)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors","method":"GET","endpoint":"/api/v1/fake","statusCode":504}'::jsonb,
|
|
now(),
|
|
(ARRAY['FAKE-CLIENT-A','FAKE-CLIENT-B'])[1 + (g % 2)],
|
|
(ARRAY['API-A-01','API-B-01'])[1 + (g % 2)],
|
|
'Production'
|
|
FROM generate_series(1, 15) AS g;
|
|
|
|
-- 2.2 NULL_REF — 10 occurrences FAKE-CLIENT-A.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e200000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '14 days'),
|
|
'P1',
|
|
'Error',
|
|
'OMK-API-REQ-001',
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
'fake-actor-001', 1,
|
|
(ARRAY['1.0.0','1.1.0'])[1 + (g % 2)],
|
|
'api',
|
|
'NULL_REF',
|
|
'[FAKE LOCAL] NullReferenceException simulation ' || g,
|
|
'System.NullReferenceException',
|
|
E'[FAKE LOCAL]\nSystem.NullReferenceException: Object reference not set\n at Omika.Api.Tests.FakeService.Execute()',
|
|
NULL,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors","endpoint":"/api/v1/fake"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'
|
|
FROM generate_series(1, 10) AS g;
|
|
|
|
-- 2.3 HTTP_500 — 12 occurrences FAKE-CLIENT-B (Production + Staging).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e300000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '30 days'),
|
|
'P1',
|
|
'Error',
|
|
'OMK-API-HTTP-003',
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
'fake-actor-002', 1,
|
|
(ARRAY['1.0.0','1.0.1'])[1 + (g % 2)],
|
|
'api',
|
|
'HTTP_500',
|
|
'[FAKE LOCAL] HttpRequestException simulation ' || g,
|
|
'System.Net.Http.HttpRequestException',
|
|
E'[FAKE LOCAL]\nSystem.Net.Http.HttpRequestException: 500 Internal Server Error\n at Omika.Api.Tests.FakeService.Send()',
|
|
(ARRAY[800,1200,2000])[1 + (g % 3)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors","statusCode":500}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-B',
|
|
(ARRAY['API-B-01','API-B-STG-01'])[1 + (g % 2)],
|
|
(ARRAY['Production','Staging'])[1 + (g % 2)]
|
|
FROM generate_series(1, 12) AS g;
|
|
|
|
-- 2.4 SYNC_FAILED — 8 occurrences (échec de synchronisation).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e400000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '10 days'),
|
|
'P1',
|
|
'Error',
|
|
'OMK-WKR-SYNC-002',
|
|
'Omika.Worker',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
(ARRAY['1.0.0','1.0.1'])[1 + (g % 2)],
|
|
'worker',
|
|
'SYNC_FAILED',
|
|
'[FAKE LOCAL] sync failure simulation ' || g,
|
|
'System.InvalidOperationException',
|
|
E'[FAKE LOCAL]\nSystem.InvalidOperationException: sync rejected\n at Omika.Worker.Tests.FakeHandler.Apply()',
|
|
(ARRAY[500,600,900])[1 + (g % 3)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors","retryCount":2}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-B', 'WORKER-B-01', 'Production'
|
|
FROM generate_series(1, 8) AS g;
|
|
|
|
-- 2.5 SYNC_RETRY — 8 occurrences (retry transitoire).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e500000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '8 days'),
|
|
'P2',
|
|
'Warning',
|
|
'OMK-WKR-SYNC-002',
|
|
'Omika.Worker',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
(ARRAY['1.0.0','1.1.0'])[1 + (g % 2)],
|
|
'worker',
|
|
'SYNC_RETRY',
|
|
'[FAKE LOCAL] sync retry simulation ' || g,
|
|
NULL, NULL,
|
|
(ARRAY[200,300,400])[1 + (g % 3)]::bigint,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors","retryCount":1}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-A', 'WORKER-A-01', 'Production'
|
|
FROM generate_series(1, 8) AS g;
|
|
|
|
-- 2.6 CRASH critique — 4 occurrences FAKE-CLIENT-C (Critical).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
SELECT
|
|
('2e600000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (random() * interval '2 days'),
|
|
'P0',
|
|
'Critical',
|
|
'OMK-API-HTTP-003',
|
|
'Omika.Api',
|
|
NULL, NULL, NULL,
|
|
NULL, NULL,
|
|
'1.1.0',
|
|
'api',
|
|
'CRASH',
|
|
'[FAKE LOCAL] Critical crash simulation ' || g,
|
|
'System.OutOfMemoryException',
|
|
E'[FAKE LOCAL]\nSystem.OutOfMemoryException: insufficient memory\n at Omika.Api.Tests.FakeService.Allocate()',
|
|
NULL,
|
|
'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"errors"}'::jsonb,
|
|
now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development'
|
|
FROM generate_series(1, 4) AS g;
|
|
|
|
-- =====================================================================
|
|
-- 3. TRACES SYNTHÉTIQUES (TraceId partagé) — pour /Traces (§12)
|
|
-- =====================================================================
|
|
|
|
-- Trace T1 : FAKE-CLIENT-A / API-A-01 — mobile → API → réponse (4 événements).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('3a000000-0000-0000-0000-000000000001', now() - interval '35 minutes', 'P2', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
'aaaaaaaa-1111-4111-8111-111111111111', NULL, NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] trace T1 - mobile started', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('3a000000-0000-0000-0000-000000000002', now() - interval '34 minutes', 'P2', 'Info', 'OMK-API-HTTP-001', 'Omika.Api',
|
|
'aaaaaaaa-1111-4111-8111-111111111111', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T1 - api request', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","method":"POST","endpoint":"/api/v1/sync"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('3a000000-0000-0000-0000-000000000003', now() - interval '33 minutes', 'P2', 'Info', 'OMK-API-HTTP-002', 'Omika.Api',
|
|
'aaaaaaaa-1111-4111-8111-111111111111', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T1 - api processing', NULL, NULL, 350, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":200}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('3a000000-0000-0000-0000-000000000004', now() - interval '32 minutes', 'P2', 'Info', 'OMK-API-HTTP-002', 'Omika.Api',
|
|
'aaaaaaaa-1111-4111-8111-111111111111', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T1 - api response', NULL, NULL, 420, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":200}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production');
|
|
|
|
-- Trace T2 : FAKE-CLIENT-B / API-B-01 — API → traitement → erreur (3 événements).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('3b000000-0000-0000-0000-000000000001', now() - interval '6 hours', 'P2', 'Info', 'OMK-API-HTTP-001', 'Omika.Api',
|
|
'bbbbbbbb-2222-4222-8222-222222222222', NULL, NULL, NULL, NULL, '1.0.1', 'api', NULL,
|
|
'[FAKE LOCAL] trace T2 - api request', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","method":"GET","endpoint":"/api/v1/fake"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'),
|
|
('3b000000-0000-0000-0000-000000000003', now() - interval '6 hours' + interval '25 ms', 'P2', 'Info', 'OMK-API-HTTP-002', 'Omika.Api',
|
|
'bbbbbbbb-2222-4222-8222-222222222222', NULL, NULL, NULL, NULL, '1.0.1', 'api', NULL,
|
|
'[FAKE LOCAL] trace T2 - api processing', NULL, NULL, 300, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":200}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'),
|
|
('3b000000-0000-0000-0000-000000000002', now() - interval '6 hours' + interval '50 ms', 'P1', 'Error', 'OMK-API-HTTP-003', 'Omika.Api',
|
|
'bbbbbbbb-2222-4222-8222-222222222222', NULL, NULL, NULL, NULL, '1.0.1', 'api', 'HTTP_500',
|
|
'[FAKE LOCAL] trace T2 - traitement en erreur', 'System.Net.Http.HttpRequestException',
|
|
E'[FAKE LOCAL]\nSystem.Net.Http.HttpRequestException: 500\n at Omika.Api.Tests.FakeService.Send()', 1200, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":500}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production');
|
|
|
|
-- Trace T3 : FAKE-CLIENT-C / API-C-DEV-01 / Development — succès rapide (3 événements).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('3c000000-0000-0000-0000-000000000001', now() - interval '12 hours', 'P3', 'Info', 'OMK-API-HTTP-001', 'Omika.Api',
|
|
'cccccccc-3333-4333-8333-333333333333', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T3 - api request', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace"}'::jsonb, now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development'),
|
|
('3c000000-0000-0000-0000-000000000002', now() - interval '12 hours' + interval '30 ms', 'P3', 'Info', 'OMK-API-HTTP-002', 'Omika.Api',
|
|
'cccccccc-3333-4333-8333-333333333333', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T3 - api processing', NULL, NULL, 80, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":200}'::jsonb, now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development'),
|
|
('3c000000-0000-0000-0000-000000000003', now() - interval '12 hours' + interval '45 ms', 'P3', 'Info', 'OMK-API-HTTP-002', 'Omika.Api',
|
|
'cccccccc-3333-4333-8333-333333333333', NULL, NULL, NULL, NULL, '1.1.0', 'api', NULL,
|
|
'[FAKE LOCAL] trace T3 - api response', NULL, NULL, 90, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"trace","statusCode":200}'::jsonb, now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development');
|
|
|
|
-- =====================================================================
|
|
-- 4. SYNCHRONISATION SYNTHÉTIQUE (OperationId partagé) — succès/retry/échec (§25)
|
|
-- EventCodes exacts : OMK-MOB-SYNC-001 / OMK-WKR-SYNC-001 / OMK-WKR-SYNC-002
|
|
-- =====================================================================
|
|
|
|
-- Opération OP-SUCCESS (FAKE-CLIENT-A / Production) : succès mobile → worker.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('45000000-0000-0000-0000-000000000001', now() - interval '1 hour', 'P2', 'Info', 'OMK-MOB-SYNC-001', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000a1', '0a0a0a0a-1000-4000-8000-000000000001', 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] sync OP-SUCCESS - operation reçue', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('45000000-0000-0000-0000-000000000002', now() - interval '59 minutes', 'P3', 'Info', 'OMK-WKR-SYNC-001', 'Omika.Worker',
|
|
NULL, NULL, '0a0a0a0a-1000-4000-8000-000000000001', NULL, NULL, '1.1.0', 'worker', NULL,
|
|
'[FAKE LOCAL] sync OP-SUCCESS - worker processing', NULL, NULL, 450, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync","retryCount":0}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'WORKER-A-01', 'Production'),
|
|
('45000000-0000-0000-0000-000000000003', now() - interval '58 minutes', 'P3', 'Info', 'OMK-WKR-SYNC-001', 'Omika.Worker',
|
|
NULL, NULL, '0a0a0a0a-1000-4000-8000-000000000001', NULL, NULL, '1.1.0', 'worker', NULL,
|
|
'[FAKE LOCAL] sync OP-SUCCESS - worker success', NULL, NULL, 480, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync","retryCount":0}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'WORKER-A-01', 'Production');
|
|
|
|
-- Opération OP-FAIL (FAKE-CLIENT-B / Production) : échec définitif worker.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('45000000-0000-0000-0000-000000000004', now() - interval '3 hours', 'P1', 'Info', 'OMK-MOB-SYNC-001', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000a2', '0b0b0b0b-1000-4000-8000-000000000002', 'fake-actor-002', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] sync OP-FAIL - operation reçue', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'),
|
|
('45000000-0000-0000-0000-000000000005', now() - interval '3 hours' + interval '10 seconds', 'P1', 'Error', 'OMK-WKR-SYNC-002', 'Omika.Worker',
|
|
NULL, NULL, '0b0b0b0b-1000-4000-8000-000000000002', NULL, NULL, '1.0.0', 'worker', 'SYNC_FAILED',
|
|
'[FAKE LOCAL] sync OP-FAIL - worker failure', 'System.InvalidOperationException',
|
|
E'[FAKE LOCAL]\nSystem.InvalidOperationException: sync rejected\n at Omika.Worker.Tests.FakeHandler.Apply()', 600, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync","retryCount":2}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'WORKER-B-01', 'Production');
|
|
|
|
-- Opération OP-RETRY (FAKE-CLIENT-B / Production) : retry transitoire worker.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('45000000-0000-0000-0000-000000000006', now() - interval '9 hours', 'P2', 'Warning', 'OMK-MOB-SYNC-001', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000a3', '0c0c0c0c-1000-4000-8000-000000000003', 'fake-actor-003', 1, '1.1.0', 'Desktop', NULL,
|
|
'[FAKE LOCAL] sync OP-RETRY - operation reçue', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'),
|
|
('45000000-0000-0000-0000-000000000007', now() - interval '9 hours' + interval '5 seconds', 'P2', 'Warning', 'OMK-WKR-SYNC-002', 'Omika.Worker',
|
|
NULL, NULL, '0c0c0c0c-1000-4000-8000-000000000003', NULL, NULL, '1.1.0', 'worker', 'SYNC_RETRY',
|
|
'[FAKE LOCAL] sync OP-RETRY - transient retry', NULL, NULL, 300, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"sync","retryCount":1}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'WORKER-B-01', 'Production');
|
|
|
|
-- =====================================================================
|
|
-- 5. SESSIONS PARTAGÉES (SessionId) — corrélation du détail.
|
|
-- =====================================================================
|
|
|
|
-- Session S1 (FAKE-CLIENT-A / Production).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('5a000000-0000-0000-0000-000000000001', now() - interval '2 hours', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000b1', NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] session S1 - app started', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"session"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('5a000000-0000-0000-0000-000000000002', now() - interval '1 hour 50 minutes', 'P3', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000b1', NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] session S1 - diagnostic init', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"session"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production'),
|
|
('5a000000-0000-0000-0000-000000000003', now() - interval '1 hour 40 minutes', 'P2', 'Warning', 'OMK-MOB-APP-002', 'Omika.App',
|
|
NULL, '5e5e5e5e-5000-4000-8000-0000000000b1', NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] session S1 - app session stopped', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"session"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production');
|
|
|
|
-- Session S2 (FAKE-CLIENT-B / Production).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('5b000000-0000-0000-0000-000000000001', now() - interval '30 minutes', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, '5f5f5f5f-5000-4000-8000-0000000000b2', NULL, 'fake-actor-002', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] session S2 - app started', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"session"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production'),
|
|
('5b000000-0000-0000-0000-000000000002', now() - interval '29 minutes', 'P3', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, '5f5f5f5f-5000-4000-8000-0000000000b2', NULL, 'fake-actor-002', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] session S2 - diagnostic init', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"session"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production');
|
|
|
|
-- =====================================================================
|
|
-- 6. SCREENVIEW (usage, §13) — 250 vues pondérées sur 12 écrans du catalogue.
|
|
-- EventCode OMK-MOB-UI-001. AGENDA dominant, SETTINGS rare.
|
|
-- =====================================================================
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
SELECT
|
|
('61000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (g % 60) * interval '5 hours',
|
|
'P4', 'Info', 'OMK-MOB-UI-001', 'Navigation',
|
|
NULL, ('6a000000-0000-0000-0000-' || lpad((g % 30)::text, 12, '0'))::uuid, NULL,
|
|
(ARRAY['fake-actor-001','fake-actor-002','fake-actor-003'])[1 + (g % 3)], 1,
|
|
(ARRAY['1.0.0','1.0.1','1.1.0'])[1 + (g % 3)],
|
|
(ARRAY['Android','Android','iOS','Desktop'])[1 + (g % 4)],
|
|
NULL, '[FAKE LOCAL] ScreenView', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"screen-view"}'::jsonb, now(),
|
|
(ARRAY['FAKE-CLIENT-A','FAKE-CLIENT-B','FAKE-CLIENT-C'])[1 + (g % 3)],
|
|
(ARRAY['API-A-01','API-B-01','API-C-DEV-01'])[1 + (g % 3)],
|
|
(ARRAY['Production','Production','Development'])[1 + (g % 3)],
|
|
(ARRAY['FAKE-LIC-C','FAKE-LIC-D','FAKE-LIC-E','FAKE-LIC-DESKTOP-A','FAKE-LIC-DESKTOP-B','FAKE-LIC-F'])[1 + (g % 6)],
|
|
(ARRAY['devk-android-google-c','devk-ios-apple-d','devk-ios-apple-e','devk-desktop-windows-f','devk-desktop-windows-g','devk-android-extra-h'])[1 + (g % 6)], 1,
|
|
(ARRAY['Google','Apple','Apple','Microsoft','Dell','OnePlus'])[1 + (g % 6)],
|
|
(ARRAY['Pixel 8','iPhone 15 Pro','iPhone 16 Pro Max','Surface Pro 9','XPS 15','OnePlus 12'])[1 + (g % 6)],
|
|
(ARRAY['Android','iOS','iOS','Windows','Windows','Android'])[1 + (g % 6)],
|
|
(ARRAY['14','17.6','18.7','11','10','14'])[1 + (g % 6)],
|
|
(ARRAY['1','2','3','4','5','6'])[1 + (g % 6)],
|
|
1080, 2400, 393, 873, 2.75,
|
|
(CASE
|
|
WHEN g <= 40 THEN 'AGENDA'
|
|
WHEN g <= 70 THEN 'SITE_DETAIL'
|
|
WHEN g <= 100 THEN 'RENDEZVOUS_DETAIL'
|
|
WHEN g <= 130 THEN 'INTERVENTION_SEARCH'
|
|
WHEN g <= 160 THEN 'INTERVENTION_DETAIL'
|
|
WHEN g <= 180 THEN 'RAPPORT'
|
|
WHEN g <= 195 THEN 'EMAIL'
|
|
WHEN g <= 210 THEN 'TEAM'
|
|
WHEN g <= 220 THEN 'SETTINGS'
|
|
WHEN g <= 230 THEN 'DOSSIER_LIST'
|
|
WHEN g <= 240 THEN 'CLIENT_LIST'
|
|
ELSE 'SITE_LIST'
|
|
END),
|
|
NULL
|
|
FROM generate_series(1, 250) AS g;
|
|
|
|
-- =====================================================================
|
|
-- 7. FEATUREUSE (usage, §14) — 120 utilisations, fréquences DIFFÉRENTES.
|
|
-- INTERVENTION_SEARCH_RUN (60) > REPORT_GENERATE (36) > EMAIL_SEND (24).
|
|
-- EventCode OMK-MOB-UI-002.
|
|
-- =====================================================================
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
SELECT
|
|
('62000000-0000-0000-0000-' || lpad(g::text, 12, '0'))::uuid,
|
|
now() - (g % 50) * interval '4 hours',
|
|
'P4', 'Info', 'OMK-MOB-UI-002',
|
|
(CASE WHEN g <= 60 THEN 'InterventionsViewModel'
|
|
WHEN g <= 96 THEN 'RapportChampsViewModel'
|
|
ELSE 'NouveauEmailViewModel' END),
|
|
NULL, ('6a000000-0000-0000-0000-' || lpad((g % 30)::text, 12, '0'))::uuid, NULL,
|
|
(ARRAY['fake-actor-001','fake-actor-002','fake-actor-003'])[1 + (g % 3)], 1,
|
|
(ARRAY['1.0.0','1.0.1','1.1.0'])[1 + (g % 3)],
|
|
(ARRAY['Android','Android','iOS','Desktop'])[1 + (g % 4)],
|
|
NULL, '[FAKE LOCAL] FeatureUse', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"feature-use"}'::jsonb, now(),
|
|
(ARRAY['FAKE-CLIENT-A','FAKE-CLIENT-B','FAKE-CLIENT-C'])[1 + (g % 3)],
|
|
(ARRAY['API-A-01','API-B-01','API-C-DEV-01'])[1 + (g % 3)],
|
|
(ARRAY['Production','Production','Development'])[1 + (g % 3)],
|
|
(ARRAY['FAKE-LIC-C','FAKE-LIC-D','FAKE-LIC-E','FAKE-LIC-DESKTOP-A','FAKE-LIC-DESKTOP-B','FAKE-LIC-F'])[1 + (g % 6)],
|
|
(ARRAY['devk-android-google-c','devk-ios-apple-d','devk-ios-apple-e','devk-desktop-windows-f','devk-desktop-windows-g','devk-android-extra-h'])[1 + (g % 6)], 1,
|
|
(ARRAY['Google','Apple','Apple','Microsoft','Dell','OnePlus'])[1 + (g % 6)],
|
|
(ARRAY['Pixel 8','iPhone 15 Pro','iPhone 16 Pro Max','Surface Pro 9','XPS 15','OnePlus 12'])[1 + (g % 6)],
|
|
(ARRAY['Android','iOS','iOS','Windows','Windows','Android'])[1 + (g % 6)],
|
|
(ARRAY['14','17.6','18.7','11','10','14'])[1 + (g % 6)],
|
|
(ARRAY['1','2','3','4','5','6'])[1 + (g % 6)],
|
|
1080, 2400, 393, 873, 2.75,
|
|
(CASE WHEN g <= 60 THEN 'INTERVENTION_SEARCH'
|
|
WHEN g <= 96 THEN 'RAPPORT'
|
|
ELSE 'EMAIL' END),
|
|
(CASE WHEN g <= 60 THEN 'INTERVENTION_SEARCH_RUN'
|
|
WHEN g <= 96 THEN 'REPORT_GENERATE'
|
|
ELSE 'EMAIL_SEND' END)
|
|
FROM generate_series(1, 120) AS g;
|
|
|
|
-- =====================================================================
|
|
-- 8. CAS PARC (§9-§11) : licence réattribuée, changement OS, changement version,
|
|
-- appareils Desktop/Windows, variété de flotte.
|
|
-- =====================================================================
|
|
|
|
-- 8.1 Réattribution de licence FAKE-LIC-REASSIGNED :
|
|
-- Device A (Android 15, ancien) → Device B (iOS 18, récent).
|
|
-- MÊME LicenseNumber sur deux DeviceKey = 2 appareils DISTINCTS, jamais fusionnés.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
VALUES
|
|
('71000000-0000-0000-0000-000000000001', now() - interval '20 days', 'P2', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.0.0', 'Android', NULL,
|
|
'[FAKE LOCAL] reassigned device A (old)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"license-reassigned"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-REASSIGNED', 'devk-reassigned-android-a', 1, 'Samsung', 'SM-S921B', 'Android', '15', '1',
|
|
1080, 2400, 360, 800, 3.0, 'AGENDA', NULL),
|
|
('71000000-0000-0000-0000-000000000002', now() - interval '18 days', 'P2', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.0.0', 'Android', NULL,
|
|
'[FAKE LOCAL] reassigned device A (old)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"license-reassigned"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-REASSIGNED', 'devk-reassigned-android-a', 1, 'Samsung', 'SM-S921B', 'Android', '15', '1',
|
|
1080, 2400, 360, 800, 3.0, 'SITE_DETAIL', NULL),
|
|
('71000000-0000-0000-0000-000000000003', now() - interval '2 days', 'P2', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.1.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] reassigned device B (recent)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"license-reassigned"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-REASSIGNED', 'devk-reassigned-ios-b', 1, 'Apple', 'iPhone 15 Pro', 'iOS', '18', '3',
|
|
1179, 2556, 393, 852, 3.0, 'RENDEZVOUS_DETAIL', NULL),
|
|
('71000000-0000-0000-0000-000000000004', now() - interval '1 day', 'P2', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.1.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] reassigned device B (recent)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"license-reassigned"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-REASSIGNED', 'devk-reassigned-ios-b', 1, 'Apple', 'iPhone 15 Pro', 'iOS', '18', '3',
|
|
1179, 2556, 393, 852, 3.0, 'INTERVENTION_DETAIL', NULL);
|
|
|
|
-- 8.2 Changement d'OS d'un même DeviceKey (§10) : devk-android-samsung-a
|
|
-- Android 15 → Android 16. Vue parc actuelle = Android 16 (dernière observation).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
VALUES
|
|
('72000000-0000-0000-0000-000000000001', now() - interval '12 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] os change samsung-a (old Android 15)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"os-change"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-A', 'devk-android-samsung-a', 1, 'Samsung', 'SM-S928B', 'Android', '15', '1',
|
|
1080, 2400, 360, 800, 3.0, 'AGENDA', NULL),
|
|
('72000000-0000-0000-0000-000000000002', now() - interval '3 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] os change samsung-a (recent Android 16)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"os-change"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-A', 'devk-android-samsung-a', 1, 'Samsung', 'SM-S928B', 'Android', '16', '2',
|
|
1080, 2400, 360, 800, 3.0, 'SITE_DETAIL', NULL);
|
|
|
|
-- 8.3 Changement de version Omika d'un même DeviceKey (§11) : devk-android-xiaomi-b
|
|
-- 1.0.0 → 1.1.0. Vue parc actuelle = 1.1.0 (dernière observation).
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
VALUES
|
|
('73000000-0000-0000-0000-000000000001', now() - interval '15 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.0.0', 'Android', NULL,
|
|
'[FAKE LOCAL] version change xiaomi-b (old 1.0.0)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"version-change"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production',
|
|
'FAKE-LIC-B', 'devk-android-xiaomi-b', 1, 'Xiaomi', '23113RKC6G', 'Android', '16', '1',
|
|
1080, 2400, 393, 873, 2.75, 'AGENDA', NULL),
|
|
('73000000-0000-0000-0000-000000000002', now() - interval '4 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] version change xiaomi-b (recent 1.1.0)', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"version-change"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production',
|
|
'FAKE-LIC-B', 'devk-android-xiaomi-b', 1, 'Xiaomi', '23113RKC6G', 'Android', '16', '3',
|
|
1080, 2400, 393, 873, 2.75, 'SITE_DETAIL', NULL);
|
|
|
|
-- 8.4 Appareils Desktop/Windows + variété de flotte (§8) — 8 observations.
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment,
|
|
license_number, device_key, device_key_version, device_manufacturer,
|
|
device_model, operating_system, operating_system_version, app_build,
|
|
screen_width, screen_height, logical_width, logical_height, display_scale,
|
|
screen_code, feature_code)
|
|
VALUES
|
|
('74000000-0000-0000-0000-000000000001', now() - interval '6 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.0.0', 'Desktop', NULL,
|
|
'[FAKE LOCAL] fleet desktop surface', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-desktop"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-DESKTOP-A', 'devk-desktop-windows-f', 1, 'Microsoft', 'Surface Pro 9', 'Windows', '11', '1',
|
|
2880, 1920, 1440, 960, 1.5, 'AGENDA', NULL),
|
|
('74000000-0000-0000-0000-000000000002', now() - interval '6 days', 'P3', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.0.0', 'Desktop', NULL,
|
|
'[FAKE LOCAL] fleet desktop surface diag', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-desktop"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-DESKTOP-A', 'devk-desktop-windows-f', 1, 'Microsoft', 'Surface Pro 9', 'Windows', '11', '1',
|
|
2880, 1920, 1440, 960, 1.5, 'SETTINGS', NULL),
|
|
('74000000-0000-0000-0000-000000000003', now() - interval '8 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.1.0', 'Desktop', NULL,
|
|
'[FAKE LOCAL] fleet desktop dell xps', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-desktop"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production',
|
|
'FAKE-LIC-DESKTOP-B', 'devk-desktop-windows-g', 1, 'Dell', 'XPS 15', 'Windows', '10', '3',
|
|
3840, 2400, 1920, 1200, 2.0, 'TEAM', NULL),
|
|
('74000000-0000-0000-0000-000000000004', now() - interval '9 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-003', 1, '1.0.0', 'Android', NULL,
|
|
'[FAKE LOCAL] fleet device google pixel', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-variety"}'::jsonb, now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development',
|
|
'FAKE-LIC-C', 'devk-android-google-c', 1, 'Google', 'Pixel 8', 'Android', '14', '2',
|
|
1080, 2400, 360, 800, 3.0, 'SETTINGS', NULL),
|
|
('74000000-0000-0000-0000-000000000005', now() - interval '7 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] fleet device iphone 15 pro', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-variety"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production',
|
|
'FAKE-LIC-D', 'devk-ios-apple-d', 1, 'Apple', 'iPhone 15 Pro', 'iOS', '17.6', '1',
|
|
1179, 2556, 393, 852, 3.0, 'RENDEZVOUS_DETAIL', NULL),
|
|
('74000000-0000-0000-0000-000000000006', now() - interval '7 days', 'P3', 'Info', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-003', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] fleet device iphone 16 pro max', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-variety"}'::jsonb, now(),
|
|
'FAKE-CLIENT-C', 'API-C-DEV-01', 'Development',
|
|
'FAKE-LIC-E', 'devk-ios-apple-e', 1, 'Apple', 'iPhone 16 Pro Max', 'iOS', '18.7', '2',
|
|
1206, 2622, 402, 874, 3.0, 'EMAIL', NULL),
|
|
('74000000-0000-0000-0000-000000000007', now() - interval '10 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] fleet device samsung again', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-variety"}'::jsonb, now(),
|
|
'FAKE-CLIENT-A', 'API-A-01', 'Production',
|
|
'FAKE-LIC-A', 'devk-android-samsung-a', 1, 'Samsung', 'SM-S928B', 'Android', '16', '2',
|
|
1080, 2400, 360, 800, 3.0, 'RAPPORT', NULL),
|
|
('74000000-0000-0000-0000-000000000008', now() - interval '10 days', 'P3', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.1.0', 'Android', NULL,
|
|
'[FAKE LOCAL] fleet device xiaomi again', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"fleet-variety"}'::jsonb, now(),
|
|
'FAKE-CLIENT-B', 'API-B-01', 'Production',
|
|
'FAKE-LIC-B', 'devk-android-xiaomi-b', 1, 'Xiaomi', '23113RKC6G', 'Android', '16', '3',
|
|
1080, 2400, 393, 873, 2.75, 'INTERVENTION_SEARCH', NULL);
|
|
|
|
-- =====================================================================
|
|
-- 9. DONNÉES HISTORIQUES SANS CONTEXTE (§16) :
|
|
-- device_key / license_number / screen_code / feature_code = NULL.
|
|
-- Elles restent affichables sans filtre, et exclues par les filtres appareil/
|
|
-- licence/écran/fonctionnalité. Toujours source='local-seed' + [FAKE LOCAL].
|
|
-- =====================================================================
|
|
INSERT INTO diagnostic_event
|
|
(event_id, timestamp_utc, priority, level, event_code, component,
|
|
trace_id, session_id, operation_id, actor_key, actor_key_version,
|
|
app_version, platform, error_code, message, exception_type, stack_trace,
|
|
duration_ms, source, metadata_json, ingested_at_utc,
|
|
client_code, server_instance, environment)
|
|
VALUES
|
|
('7a000000-0000-0000-0000-000000000001', now() - interval '18 days', 'P2', 'Info', 'OMK-MOB-APP-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-001', 1, '1.0.0', 'Android', NULL,
|
|
'[FAKE LOCAL] historique sans contexte 1', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL),
|
|
('7a000000-0000-0000-0000-000000000002', now() - interval '22 days', 'P3', 'Info', 'OMK-API-HTTP-001', 'Omika.Api',
|
|
NULL, NULL, NULL, NULL, NULL, '1.0.0', 'api', NULL,
|
|
'[FAKE LOCAL] historique sans contexte 2', NULL, NULL, 120, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL),
|
|
('7a000000-0000-0000-0000-000000000003', now() - interval '26 days', 'P1', 'Error', 'OMK-API-HTTP-003', 'Omika.Api',
|
|
NULL, NULL, NULL, NULL, NULL, '1.0.0', 'api', 'TIMEOUT',
|
|
'[FAKE LOCAL] historique sans contexte 3', 'System.TimeoutException',
|
|
E'[FAKE LOCAL]\nSystem.TimeoutException: legacy\n at Omika.Api.Tests.FakeService.Execute()', 2000, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL),
|
|
('7a000000-0000-0000-0000-000000000004', now() - interval '30 days', 'P2', 'Warning', 'OMK-MOB-APP-002', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-002', 1, '1.0.0', 'iOS', NULL,
|
|
'[FAKE LOCAL] historique sans contexte 4', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL),
|
|
('7a000000-0000-0000-0000-000000000005', now() - interval '35 days', 'P3', 'Debug', 'OMK-MOB-DIAG-001', 'Omika.App',
|
|
NULL, NULL, NULL, 'fake-actor-003', 1, '1.0.0', 'Desktop', NULL,
|
|
'[FAKE LOCAL] historique sans contexte 5', NULL, NULL, NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL),
|
|
('7a000000-0000-0000-0000-000000000006', now() - interval '40 days', 'P1', 'Error', 'OMK-API-REQ-001', 'Omika.Api',
|
|
NULL, NULL, NULL, NULL, NULL, '1.0.0', 'api', 'NULL_REF',
|
|
'[FAKE LOCAL] historique sans contexte 6', 'System.NullReferenceException',
|
|
E'[FAKE LOCAL]\nSystem.NullReferenceException: legacy\n at Omika.Api.Tests.FakeService.Execute()', NULL, 'local-seed',
|
|
'{"synthetic":true,"seed":"omika-local-diagnostics-preprod","t21":"historical-null"}'::jsonb, now(),
|
|
NULL, NULL, NULL);
|
|
|
|
-- =====================================================================
|
|
-- FIN DU SEED T21. Volume attendu (~730 événements local-seed) :
|
|
-- 270 volume de fond + 57 erreurs + 10 traces + 7 synchronisation +
|
|
-- 5 sessions + 250 ScreenView + 120 FeatureUse + 16 parc + 6 historiques NULL.
|
|
-- Requêtes de contrôle :
|
|
-- SELECT count(*) FROM diagnostic_event WHERE source = 'local-seed';
|
|
-- SELECT client_code, count(*) FROM diagnostic_event WHERE source='local-seed' GROUP BY 1 ORDER BY 1 NULLS LAST;
|
|
-- SELECT count(DISTINCT device_key) FROM diagnostic_event WHERE source='local-seed' AND device_key IS NOT NULL;
|
|
-- SELECT count(DISTINCT license_number) FROM diagnostic_event WHERE source='local-seed' AND license_number IS NOT NULL;
|
|
-- SELECT screen_code, count(*) FROM diagnostic_event WHERE source='local-seed' AND screen_code IS NOT NULL GROUP BY 1 ORDER BY 2 DESC;
|
|
-- SELECT feature_code, count(*) FROM diagnostic_event WHERE source='local-seed' AND feature_code IS NOT NULL GROUP BY 1 ORDER BY 2 DESC;
|
|
-- =====================================================================
|