Packages
ex_esdb
0.7.8
0.11.0
0.10.0
0.9.0
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14-alpha
0.0.13-alpha
0.0.12-alpha
0.0.11-alpha
0.0.10-alpha
0.0.9-alpha
0.0.8-alpha
0.0.6-alpha
0.0.5-alpha
0.0.4-alpha
0.0.3-alpha
0.0.2-alfa
0.0.1-alfa
ExESDB is a reincarnation of rabbitmq/khepri, specialized for use as a BEAM-native event store.
Current section
Files
Jump to
Current section
Files
lib/ex_esdb/debugger_demo.exs
#!/usr/bin/env elixir
# Demo script for ExESDB.Debugger
# Run with: elixir -r lib/ex_esdb/debugger.ex lib/ex_esdb/debugger_demo.exs
IO.puts("π ExESDB Debugger Demo")
IO.puts("=" <> String.duplicate("=", 30))
# Compile the debugger module first
Code.require_file("lib/ex_esdb/debugger.ex", __DIR__ <> "/..")
alias ExESDB.Debugger
IO.puts("\nπ Available commands:")
Debugger.help()
IO.puts("\nπ― Example usage in REPL:")
IO.puts("""
# Start your application first
iex -S mix
# Then use these commands:
ExESDB.Debugger.overview()
ExESDB.Debugger.processes()
ExESDB.Debugger.health()
ExESDB.Debugger.config()
ExESDB.Debugger.streams()
ExESDB.Debugger.subscriptions()
ExESDB.Debugger.performance()
ExESDB.Debugger.observer() # Opens Erlang Observer GUI
# Investigate specific streams
ExESDB.Debugger.events("user-123", limit: 5)
# Trace function calls
ExESDB.Debugger.trace(ExESDB.StreamsWriter, :append_events, duration: 3000)
# Benchmark functions
ExESDB.Debugger.benchmark(fn -> 1..1000 |> Enum.sum() end, times: 1000)
# Show top processes
ExESDB.Debugger.top(limit: 5, sort_by: :memory)
""")
IO.puts("\nπ‘ Tips:")
IO.puts("- All functions work without arguments (auto-discover store)")
IO.puts("- Use store_id parameter for multi-store setups")
IO.puts("- Health check will identify common issues")
IO.puts("- Observer GUI provides real-time monitoring")