Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions cmd/loadeljson.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package cmd

import (
"fmt"
"os"
"pbench/cmd/loadeljson"
"pbench/utils"
"runtime"
"time"

"github.com/spf13/cobra"
)

// loadElJsonCmd represents the loadeljson command
var loadElJsonCmd = &cobra.Command{
Use: `loadeljson [flags] [list of files or directories to process]`,
Short: "Load event listener JSON files into database and run recorders",
Long: `Load event listener JSON files (QueryCompletedEvent) into database and run recorders`,
DisableFlagsInUseLine: true,
Args: func(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return fmt.Errorf("requires at least 1 arg, only received %d", len(args))
}
if loadeljson.Parallelism < 1 || loadeljson.Parallelism > runtime.NumCPU() {
return fmt.Errorf("invalid parallelism: %d, it should be >= 1 and <= %d", loadeljson.Parallelism, runtime.NumCPU())
}
utils.ExpandHomeDirectory(&loadeljson.MySQLCfgPath)
utils.ExpandHomeDirectory(&loadeljson.InfluxCfgPath)
utils.ExpandHomeDirectory(&loadeljson.OutputPath)
return nil
},
Run: loadeljson.Run,
}

func init() {
RootCmd.AddCommand(loadElJsonCmd)
wd, _ := os.Getwd()
loadElJsonCmd.Flags().StringVarP(&loadeljson.RunName, "name", "n", fmt.Sprintf("load_el_%s", time.Now().Format(utils.DirectoryNameTimeFormat)), `Assign a name to this run. (default: "load_el_<current time>")`)
loadElJsonCmd.Flags().StringVarP(&loadeljson.Comment, "comment", "c", "", `Add a comment to this run (optional)`)
loadElJsonCmd.Flags().BoolVarP(&loadeljson.RecordRun, "record-run", "r", false, "Record all the loaded JSON as a run")
loadElJsonCmd.Flags().StringVarP(&loadeljson.OutputPath, "output-path", "o", wd, "Output directory path")
loadElJsonCmd.Flags().IntVarP(&loadeljson.Parallelism, "parallel", "P", runtime.NumCPU(), "Number of parallel threads to load json files")
loadElJsonCmd.Flags().StringVar(&loadeljson.InfluxCfgPath, "influx", "", "InfluxDB connection config for run recorder (optional)")
loadElJsonCmd.Flags().StringVar(&loadeljson.MySQLCfgPath, "mysql", "", "MySQL connection config for event listener and run recorder (optional)")
loadElJsonCmd.Flags().BoolVar(&loadeljson.IsNDJSON, "ndjson", false, "Process files as NDJSON (newline-delimited JSON) format")
}
1 change: 1 addition & 0 deletions cmd/loadeljson/202506160849_0_error.ndjson

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions cmd/loadeljson/202506160854_0.ndjson
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{"instanceId":"978ecaae-0fe1-4997-8bfc-78b04e54662a","clusterName":"cluster1","queryCreatedEvent":null,"queryCompletedEvent":{"metadata":{"queryId":"20250616_085426_00030_ux3a6","transactionId":"9c48a888-c021-48e0-9374-df86b05c765d","tracingId":"noop_dummy_id","query":"SELECT * FROM jmx.current.\"com.facebook.alluxio:name=client.cachehitrate,type=gauges\"","queryHash":"b1b008c1baff725a","preparedQuery":null,"queryState":"FAILED","uri":"http://10.128.58.157:8585/v1/query/20250616_085426_00030_ux3a6","plan":"","jsonPlan":null,"graphvizPlan":null,"payload":"","runtimeOptimizedStages":[],"planNodeRuntimeStats":null},"statistics":{"cpuTime":0.0,"retriedCpuTime":0.0,"wallTime":0.0,"waitingForPrerequisitesTime":0.001000000,"queuedTime":0.0,"waitingForResourcesTime":0.0,"semanticAnalyzingTime":0.0,"columnAccessPermissionCheckingTime":0.0,"dispatchingTime":0.0,"planningTime":0.0,"analysisTime":null,"executionTime":0.0,"peakRunningTasks":0,"peakUserMemoryBytes":0,"peakTotalNonRevocableMemoryBytes":0,"peakTaskUserMemory":0,"peakTaskTotalMemory":0,"peakNodeTotalMemory":0,"totalBytes":0,"totalRows":0,"outputBytes":0,"outputRows":0,"writtenOutputBytes":0,"writtenOutputRows":0,"writtenIntermediateBytes":0,"spilledBytes":0,"cumulativeMemory":0.0,"cumulativeTotalMemory":0.0,"completedSplits":0,"complete":true,"runtimeStats":{}},"context":{"user":"presto","principal":"presto","remoteClientAddress":"10.128.13.249","userAgent":"StatementClientV1/0.286","clientInfo":null,"clientTags":[],"source":"presto-cli","queryActionType":null,"catalog":"glue","schema":"tpcds_sf1000_partitioned_delta","resourceGroupId":["global"],"sessionProperties":{"query_max_scan_raw_input_bytes":"10TB","query_max_memory_per_node":"32985348833B","query_max_run_time":"2h","pushdown_subfields_enabled":"true","query_max_total_memory_per_node":"43980465110B","query_max_execution_time":"3h","query_max_output_size":"500GB","task_concurrency":"32","join_distribution_type":"AUTOMATIC","join_reordering_strategy":"AUTOMATIC","query_max_stage_count":"300","resource_overcommit":"true","query_max_memory":"2TB"},"resourceEstimates":{"executionTime":null,"cpuTime":null,"peakMemory":null,"peakTaskMemory":null},"serverAddress":"10.128.58.157","serverVersion":"0.282","environment":"reetikaalluxio"},"ioMetadata":{"inputs":[],"output":null},"failureInfo":{"errorCode":{"code":1,"name":"SYNTAX_ERROR","type":"USER_ERROR","retriable":false},"failureType":"com.facebook.presto.sql.analyzer.SemanticException","failureMessage":"Table jmx.current.com.facebook.alluxio:name=client.cachehitrate,type=gauges does not exist","failureTask":null,"failureHost":null,"failuresJson":"{\"type\":\"com.facebook.presto.sql.analyzer.SemanticException\",\"message\":\"Table jmx.current.com.facebook.alluxio:name=client.cachehitrate,type=gauges does not exist\",\"suppressed\":[],\"stack\":[\"com.facebook.presto.util.MetadataUtils.getTableColumnMetadata(MetadataUtils.java:92)\",\"com.facebook.presto.util.MetadataUtils.getTableColumnsMetadata(MetadataUtils.java:54)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:1354)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:367)\",\"com.facebook.presto.sql.tree.Table.accept(Table.java:60)\",\"com.facebook.presto.sql.tree.AstVisitor.process(AstVisitor.java:27)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:381)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.analyzeFrom(StatementAnalyzer.java:2801)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:1771)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:367)\",\"com.facebook.presto.sql.tree.QuerySpecification.accept(QuerySpecification.java:138)\",\"com.facebook.presto.sql.tree.AstVisitor.process(AstVisitor.java:27)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:381)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:389)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:1188)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:367)\",\"com.facebook.presto.sql.tree.Query.accept(Query.java:105)\",\"com.facebook.presto.sql.tree.AstVisitor.process(AstVisitor.java:27)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:381)\",\"com.facebook.presto.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:359)\",\"com.facebook.presto.sql.analyzer.Analyzer.analyzeSemantic(Analyzer.java:122)\",\"com.facebook.presto.sql.analyzer.BuiltInQueryAnalyzer.analyze(BuiltInQueryAnalyzer.java:100)\",\"com.facebook.presto.execution.SqlQueryExecution.<init>(SqlQueryExecution.java:207)\",\"com.facebook.presto.execution.SqlQueryExecution.<init>(SqlQueryExecution.java:109)\",\"com.facebook.presto.execution.SqlQueryExecution$SqlQueryExecutionFactory.createQueryExecution(SqlQueryExecution.java:954)\",\"com.facebook.presto.dispatcher.LocalDispatchQueryFactory.lambda$createDispatchQuery$0(LocalDispatchQueryFactory.java:171)\",\"com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)\",\"com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75)\",\"com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)\",\"java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\",\"java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\",\"java.base/java.lang.Thread.run(Thread.java:829)\"],\"errorCode\":{\"code\":1,\"name\":\"SYNTAX_ERROR\",\"type\":\"USER_ERROR\",\"retriable\":false},\"errorCause\":\"UNKNOWN\"}"},"warnings":[],"queryType":"SELECT","failedTasks":[],"stageStatistics":[],"operatorStatistics":[],"planStatisticsRead":[],"planStatisticsWritten":[],"createTime":1750064067.198000000,"executionStartTime":1750064067.208000000,"endTime":1750064067.208000000,"expandedQuery":null,"optimizerInformation":[],"scalarFunctions":[],"aggregateFunctions":[],"windowsFunctions":[]},"queryOptimiserEvent":null,"splitCompletedEvent":null,"plan":"null","cpuTimeMillis":0,"retriedCpuTimeMillis":0,"wallTimeMillis":0,"queuedTimeMillis":0,"analysisTimeMillis":0}
{"instanceId":"978ecaae-0fe1-4997-8bfc-78b04e54662a","clusterName":"cluster1","queryCreatedEvent":null,"queryCompletedEvent":{"metadata":{"queryId":"20250616_085452_00031_ux3a6","transactionId":null,"tracingId":"noop_dummy_id","query":"show tables from FROM jmx.current like '%alluxio%'","queryHash":"8bf8b4b9e84fccf1","preparedQuery":null,"queryState":"FAILED","uri":"http://10.128.58.157:8585/v1/query/20250616_085452_00031_ux3a6","plan":"","jsonPlan":null,"graphvizPlan":null,"payload":"","runtimeOptimizedStages":[],"planNodeRuntimeStats":null},"statistics":{"cpuTime":0.0,"retriedCpuTime":0.0,"wallTime":0.0,"waitingForPrerequisitesTime":0.0,"queuedTime":0.0,"waitingForResourcesTime":0.0,"semanticAnalyzingTime":0.0,"columnAccessPermissionCheckingTime":0.0,"dispatchingTime":0.0,"planningTime":0.0,"analysisTime":null,"executionTime":0.0,"peakRunningTasks":0,"peakUserMemoryBytes":0,"peakTotalNonRevocableMemoryBytes":0,"peakTaskUserMemory":0,"peakTaskTotalMemory":0,"peakNodeTotalMemory":0,"totalBytes":0,"totalRows":0,"outputBytes":0,"outputRows":0,"writtenOutputBytes":0,"writtenOutputRows":0,"writtenIntermediateBytes":0,"spilledBytes":0,"cumulativeMemory":0.0,"cumulativeTotalMemory":0.0,"completedSplits":0,"complete":true,"runtimeStats":{}},"context":{"user":"presto","principal":"presto","remoteClientAddress":"10.128.13.249","userAgent":"StatementClientV1/0.286","clientInfo":null,"clientTags":[],"source":"presto-cli","queryActionType":null,"catalog":"glue","schema":"tpcds_sf1000_partitioned_delta","resourceGroupId":null,"sessionProperties":{},"resourceEstimates":{"executionTime":null,"cpuTime":null,"peakMemory":null,"peakTaskMemory":null},"serverAddress":"10.128.58.157","serverVersion":"0.282","environment":"reetikaalluxio"},"ioMetadata":{"inputs":[],"output":null},"failureInfo":{"errorCode":{"code":1,"name":"SYNTAX_ERROR","type":"USER_ERROR","retriable":false},"failureType":"com.facebook.presto.sql.parser.ParsingException","failureMessage":"line 1:18: mismatched input 'FROM'. Expecting: <identifier>","failureTask":null,"failureHost":null,"failuresJson":"{\"type\":\"com.facebook.presto.sql.parser.ParsingException\",\"message\":\"line 1:18: mismatched input 'FROM'. Expecting: <identifier>\",\"suppressed\":[],\"stack\":[\"com.facebook.presto.sql.parser.ErrorHandler.syntaxError(ErrorHandler.java:109)\",\"org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)\",\"org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)\",\"org.antlr.v4.runtime.DefaultErrorStrategy.reportUnwantedToken(DefaultErrorStrategy.java:377)\",\"org.antlr.v4.runtime.DefaultErrorStrategy.singleTokenDeletion(DefaultErrorStrategy.java:548)\",\"org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:266)\",\"com.facebook.presto.sql.parser.SqlBaseParser.identifier(SqlBaseParser.java:13855)\",\"com.facebook.presto.sql.parser.SqlBaseParser.qualifiedName(SqlBaseParser.java:13443)\",\"com.facebook.presto.sql.parser.SqlBaseParser.statement(SqlBaseParser.java:3811)\",\"com.facebook.presto.sql.parser.SqlBaseParser.singleStatement(SqlBaseParser.java:257)\",\"com.facebook.presto.sql.parser.SqlParser.invokeParser(SqlParser.java:173)\",\"com.facebook.presto.sql.parser.SqlParser.createStatement(SqlParser.java:108)\",\"com.facebook.presto.sql.analyzer.BuiltInQueryPreparer.prepareQuery(BuiltInQueryPreparer.java:70)\",\"com.facebook.presto.sql.analyzer.BuiltInQueryPreparer.prepareQuery(BuiltInQueryPreparer.java:56)\",\"com.facebook.presto.dispatcher.DispatchManager.createQueryInternal(DispatchManager.java:330)\",\"com.facebook.presto.dispatcher.DispatchManager.lambda$createQuery$0(DispatchManager.java:279)\",\"com.facebook.airlift.concurrent.BoundedExecutor.drainQueue(BoundedExecutor.java:78)\",\"java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\",\"java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\",\"java.base/java.lang.Thread.run(Thread.java:829)\"],\"errorLocation\":{\"lineNumber\":1,\"columnNumber\":18},\"errorCode\":{\"code\":1,\"name\":\"SYNTAX_ERROR\",\"type\":\"USER_ERROR\",\"retriable\":false},\"errorCause\":\"UNKNOWN\"}"},"warnings":[],"queryType":null,"failedTasks":[],"stageStatistics":[],"operatorStatistics":[],"planStatisticsRead":[],"planStatisticsWritten":[],"createTime":1750064092.783000000,"executionStartTime":1750064092.783000000,"endTime":1750064092.783000000,"expandedQuery":null,"optimizerInformation":[],"scalarFunctions":[],"aggregateFunctions":[],"windowsFunctions":[]},"queryOptimiserEvent":null,"splitCompletedEvent":null,"plan":"null","cpuTimeMillis":0,"retriedCpuTimeMillis":0,"wallTimeMillis":0,"queuedTimeMillis":0,"analysisTimeMillis":0}
Loading