From 3dca7483de734bace142ebdd8266d88d1742e0b2 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sat, 5 Jan 2019 08:33:57 +0100 Subject: [PATCH] utility that generates a csv with many different tags --- .../lucares/pdb/map/CsvTestDataCreator.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 block-storage/src/test/java/org/lucares/pdb/map/CsvTestDataCreator.java diff --git a/block-storage/src/test/java/org/lucares/pdb/map/CsvTestDataCreator.java b/block-storage/src/test/java/org/lucares/pdb/map/CsvTestDataCreator.java new file mode 100644 index 0000000..50397a9 --- /dev/null +++ b/block-storage/src/test/java/org/lucares/pdb/map/CsvTestDataCreator.java @@ -0,0 +1,93 @@ +package org.lucares.pdb.map; + +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; + +public class CsvTestDataCreator { + + private static final List PODS = Arrays.asList("vapbrewe01", "vapfinra01", "vapondem01", "vapondem02", + "vapondem03", "vapondem04", "vapnyse01", "vapnorto01", "vapfackb01", "vaprjrey01", "vadtrans01", + "vadaxcel09", "vadaxcel66"); + private static final List HOSTS = new ArrayList<>(); + private static final List CLASSES = Arrays.asList("AuditLog", "Brava", "Collection", "Folder", "Field", + "Tagging", "Arrangment", "Review", "Production", "ProductionExport", "View", "Jobs", "Navigation", + "RecentNavigation", "Entity", "Search", "Tasks", "PcWorkflow", "Batch", "Matter"); + private static final List ENDPOINTS = Arrays.asList("create", "remove", "update", "delete", "createBulk", + "removeBulk", "deleteBulk", "list", "index", "listing", "all"); + private static final List METHODS = new ArrayList<>(); + private static final List PROJECTS = new ArrayList<>(); + private static final List SOURCE = Arrays.asList("web", "service", "metrics"); + private static final List BUILDS = new ArrayList<>(); + + static { + for (int i = 0; i < 500; i++) { + BUILDS.add("AXC_5.15_" + i); + } + + for (int i = 0; i < 500; i++) { + HOSTS.add(UUID.randomUUID().toString().substring(1, 16)); + PROJECTS.add(UUID.randomUUID().toString().substring(1, 16) + "_Review"); + } + + for (final String clazz : CLASSES) { + for (final String endpoint : ENDPOINTS) { + METHODS.add(clazz + "Service." + endpoint); + METHODS.add(clazz + "Controller." + endpoint); + } + } + } + + public static void main(final String[] args) throws IOException { + final Path testdataFile = Files.createTempFile("testData", ".csv"); + + final ThreadLocalRandom r = ThreadLocalRandom.current(); + int lines = 0; + + try (FileWriter writer = new FileWriter(testdataFile.toFile())) { + writer.append("@timestamp,duration,pod,host,method,project,source,build\n"); + + for (lines = 0; lines < 1_000_000; lines++) { + final String timestamp = Instant.ofEpochMilli(r.nextLong(1234567890L, 12345678901L)) + .atOffset(ZoneOffset.UTC).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); + final String duration = String.valueOf(r.nextInt(10000)); + final String pod = PODS.get(r.nextInt(PODS.size())); + final String host = HOSTS.get(r.nextInt(HOSTS.size())); + final String method = METHODS.get(r.nextInt(METHODS.size())); + final String project = PROJECTS.get(r.nextInt(PROJECTS.size())); + final String source = SOURCE.get(r.nextInt(SOURCE.size())); + final String build = BUILDS.get(r.nextInt(BUILDS.size())); + + writer.append(timestamp); + writer.append(","); + writer.append(duration); + writer.append(","); + writer.append(pod); + writer.append(","); + writer.append(host); + writer.append(","); + writer.append(method); + writer.append(","); + writer.append(project); + writer.append(","); + writer.append(source); + writer.append(","); + writer.append(build); + writer.append("\n"); + + if (lines % 1000 == 0) { + System.out.println("lines: " + lines); + } + } + } + } +}