summaryrefslogtreecommitdiff
path: root/benchmarks/cmd/generate_profile_data.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-08 09:26:04 +0200
committerPaul Buetow <paul@buetow.org>2026-03-08 09:26:04 +0200
commit8b2635cd100cf9dc217ee9b472a02999a7d3fdf4 (patch)
tree9fb77b722b374b14c4d57791e1ca7a931bb3b16f /benchmarks/cmd/generate_profile_data.go
parentec1504e0cedbfeffc35e50a09633e51e93bf0e2d (diff)
task: fix benchmarks cmd package build collision (task 371)
Diffstat (limited to 'benchmarks/cmd/generate_profile_data.go')
-rw-r--r--benchmarks/cmd/generate_profile_data.go159
1 files changed, 0 insertions, 159 deletions
diff --git a/benchmarks/cmd/generate_profile_data.go b/benchmarks/cmd/generate_profile_data.go
deleted file mode 100644
index 0b34047..0000000
--- a/benchmarks/cmd/generate_profile_data.go
+++ /dev/null
@@ -1,159 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "log"
- "math/rand"
- "os"
- "strconv"
- "strings"
- "time"
-)
-
-func main() {
- var (
- size string
- output string
- format string
- )
-
- flag.StringVar(&size, "size", "10MB", "Size of the file (e.g., 10MB, 100MB, 1GB)")
- flag.StringVar(&output, "output", "test.log", "Output file path")
- flag.StringVar(&format, "format", "log", "Format: log or csv")
- flag.Parse()
-
- // Parse size
- sizeBytes, err := parseSize(size)
- if err != nil {
- log.Fatalf("Invalid size: %v", err)
- }
-
- // Generate data
- switch format {
- case "log":
- generateLogFile(output, sizeBytes)
- case "csv":
- generateCSVFile(output, sizeBytes)
- default:
- log.Fatalf("Unknown format: %s", format)
- }
-
- fmt.Printf("Generated %s file: %s\n", size, output)
-}
-
-func parseSize(size string) (int64, error) {
- size = strings.ToUpper(size)
- multiplier := int64(1)
-
- if strings.HasSuffix(size, "GB") {
- multiplier = 1024 * 1024 * 1024
- size = strings.TrimSuffix(size, "GB")
- } else if strings.HasSuffix(size, "MB") {
- multiplier = 1024 * 1024
- size = strings.TrimSuffix(size, "MB")
- } else if strings.HasSuffix(size, "KB") {
- multiplier = 1024
- size = strings.TrimSuffix(size, "KB")
- }
-
- base, err := strconv.ParseInt(size, 10, 64)
- if err != nil {
- return 0, err
- }
-
- return base * multiplier, nil
-}
-
-func generateLogFile(filename string, targetSize int64) {
- f, err := os.Create(filename)
- if err != nil {
- log.Fatal(err)
- }
- defer f.Close()
-
- // Sample log lines
- logLevels := []string{"INFO", "WARN", "ERROR", "DEBUG"}
- actions := []string{
- "Processing request",
- "Handling connection",
- "Executing query",
- "Loading configuration",
- "Updating cache",
- "Validating input",
- "Sending response",
- "Checking permissions",
- }
-
- bytesWritten := int64(0)
- lineNum := 0
- startTime := time.Now()
-
- for bytesWritten < targetSize {
- lineNum++
- timestamp := startTime.Add(time.Duration(lineNum) * time.Millisecond).Format("2006-01-02 15:04:05.000")
- level := logLevels[rand.Intn(len(logLevels))]
- action := actions[rand.Intn(len(actions))]
- userID := rand.Intn(1000)
- requestID := fmt.Sprintf("req-%d", lineNum)
- duration := rand.Intn(5000)
-
- line := fmt.Sprintf("[%s] %s - %s for user%d (request: %s, duration: %dms)\n",
- timestamp, level, action, userID, requestID, duration)
-
- n, err := f.WriteString(line)
- if err != nil {
- log.Fatal(err)
- }
- bytesWritten += int64(n)
-
- // Add some variety with stack traces for errors
- if level == "ERROR" && rand.Float32() < 0.3 {
- stackTrace := fmt.Sprintf(" Stack trace:\n at function1() file1.go:123\n at function2() file2.go:456\n at main() main.go:789\n")
- n, err := f.WriteString(stackTrace)
- if err != nil {
- log.Fatal(err)
- }
- bytesWritten += int64(n)
- }
- }
-}
-
-func generateCSVFile(filename string, targetSize int64) {
- f, err := os.Create(filename)
- if err != nil {
- log.Fatal(err)
- }
- defer f.Close()
-
- // Write header
- header := "timestamp,user,action,duration,status,category\n"
- f.WriteString(header)
- bytesWritten := int64(len(header))
-
- actions := []string{"login", "query", "update", "delete", "logout", "search", "export", "import"}
- statuses := []string{"success", "failure", "timeout", "pending"}
- categories := []string{"web", "api", "batch", "admin"}
-
- lineNum := 0
- startTime := time.Now()
-
- for bytesWritten < targetSize {
- lineNum++
- timestamp := startTime.Add(time.Duration(lineNum) * time.Second).Format("2006-01-02 15:04:05")
- user := fmt.Sprintf("user%d", rand.Intn(100))
- action := actions[rand.Intn(len(actions))]
- duration := 100 + rand.Intn(9900)
- status := statuses[rand.Intn(len(statuses))]
- category := categories[rand.Intn(len(categories))]
-
- line := fmt.Sprintf("%s,%s,%s,%d,%s,%s\n",
- timestamp, user, action, duration, status, category)
-
- n, err := f.WriteString(line)
- if err != nil {
- log.Fatal(err)
- }
- bytesWritten += int64(n)
- }
-} \ No newline at end of file