* Add gin-contrib/pprof dependency
* Run pprof server on agent with --profiler flag
* Add --profiler flag to cli
* Fix error message
* Print cpu usage percentage
* measure cpu of current pid instead of globaly on the system
* Add scripts to plot performance
* Plot packetsCount in analysis
* Concat to DataFrame
* Plot in turbo colorscheme
* Make COLORMAP const
* Fix rss units
* Reduce code repetition by adding function for plotting
* Allow grouping based on filenames
* Temporary: Marked with comments where to disable code for experiments
* Add newline at end of file
* Add tap.cpuprofile flag. Change memprofile flag to tap.memprofile
* create tapper modes for debugging using env vars
* Fix rss plot units (MB instead of bytes)
* Remove comment
* Add info to plot script
* Remove tap.cpumemprofile. Rename tap.memprofile to memprofile
* Remove unused import
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Remove whitespaces
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* Rename debug env vars
* Create package for debug env vars, read each env var once
* Run go mod tidy
* Increment MatchedPairs before emitting
* Only count cores once
* Count virtual and physical cores
* Add dbgctl replace in cli
* Fix lint: Check return values
* Add tap/dbgctl to test-lint make rule
* Replace tap/dbgctl in all modules
* #run_acceptance_tests
* Copy dbgctl module to docker image
* Debug/profile tapper benchmark (#1093)
* add mizu debug env to avoid all extensions
* add readme + run_tapper_benchmark.sh
* temporary change branch name
* fix readme
* fix MIZU_BENCHMARK_CLIENTS_COUNT env
* change tap target to tcp stream
* track live tcp streams
* pr fixes
* rename tapperPacketsCount to ignored_packets_count
* change mizu tapper to mizu debugg
Co-authored-by: David Levanon <dvdlevanon@gmail.com>
Co-authored-by: M. Mert Yıldıran <mehmet@up9.com>
* #run_acceptance_tests
* Wait 4 seconds after filter submission #run_acceptance_tests
* Revert "Wait 4 seconds after filter submission #run_acceptance_tests"
This reverts commit 3c20ccfcec.
* Upgrade Basenine version to `v0.8.2` #run_acceptance_tests
* #run_acceptance_tests
* Revert "Revert "Wait 4 seconds after filter submission #run_acceptance_tests""
This reverts commit f0c595150d.
* Reduce the delay to 2 seconds #run_acceptance_tests
* Use `cy.wait()` instead of `setTimeout`
* #run_acceptance_tests
* Increase it to 4 seconds #run_acceptance_tests
* #run_acceptance_tests
* Wait for a second and pause the stream to preserve the DOM #run_acceptance_tests
* Wait in a better place #run_acceptance_tests
* Wait `pause-icon` to disappear #run_acceptance_tests
* Wait one more second #run_acceptance_tests
* Fix `setup.sh`
* #run_acceptance_tests
* Fix the place of `npm i` call
* #run_acceptance_tests
* Fix the other workflow as well #run_acceptance_tests
* Fix the workflows once more
* #run_acceptance_tests
* Don't ignore `*/cypress/support` #run_acceptance_tests
* Do `npm i` in `setup.sh` #run_acceptance_tests
* Wait for at least 4 seconds #run_acceptance_tests
* #run_acceptance_tests
* Fix #run_acceptance_tests
* Comment #run_acceptance_tests
* Fix `{alt+enter}` to `{ctrl+enter}` and update the `checkFilter` and `deeperCheck` method signatures #run_acceptance_tests
* #run_acceptance_tests
* #run_acceptance_tests
* Extract it to a function #run_acceptance_tests
* Remove `cypress-wait-until`
* Revert `.gitignore` #run_acceptance_tests
* Fetch N number of records in M milliseconds timeout before streaming the records
* Implement the functionality inside socket data streamer
* Reverse the `fetchData` slice
* #run_acceptance_tests
* Trying to fix the tests.
#run_acceptance_tests
* javascript compilation error.
* #run_acceptance_tests
* Name the method better
* Upgrade Basenine version to `v0.8.0`
* Fix some issues related to `Fetch`
* Upgrade the Basenine version in `Dockerfile` as well
* Remove underscore from the parameter name
* Parameterize fetch timeout ms
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
Co-authored-by: Roee Gadot <roee.gadot@up9.com>
* Add from ARM64 to AMD64 cross-compilation support to the agent image
* Replace `RUN`s with `&&`
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* Basenine MongoDB mess
* Fix more
* Fix the `mongodb` container arguments
* Add Basenine ARM64 binary
* Make the changes related to `leftOff` becoming a string value
* Make `leftOffTop` state string
* Handle `CloseConnection` in `Fetch`
* Upgrade Basenine to `0.7.0`
* Revert the changes in `package.json` and `package-lock.json`
* Fix the `Dockerfile`
* Remove the binaries
* Increase the Basenine up deadline to 20 seconds
* Revert the changes in `shared/kubernetes/provider.go`
* Fix the OAS generator tests
* Protect from race condition
* Fix mutexes
* Fix unlock
* Fix logging data types
* Try to stabilize the tests
* Remove the `replace` statement
* revert the change the done in 2899414f2b to not change the leftOff
* Change `leftOffBottom` empty string default value to `latest`
* Upgrade Basenine to `0.7.1`
* Handle the Basenine client library errors better
* Use `DEFAULT_QUERY` constant
* Remove `min=-1`
* Replace some `Errorf`s with `Panicf`s
* Remove the closure in `runGenerator` method
* Remove an unnecessary check
Co-authored-by: M. Mert Yildiran <mehmet@up9.com>
Co-authored-by: Andrey Pokhilko <apc4@ya.ru>
Co-authored-by: undera <undera@undera-old-desktop.home>
Co-authored-by: AmitUp9 <96980485+AmitUp9@users.noreply.github.com>
* Add `/db/flush` and `/db/reset` API endpoints
* Handle the unmarshalling errors better in the WebSocket
* Handle Basenine connection error better in the WebSocket
* Upgrade to Basenine `v0.6.5`
* Fix the duplicated `StartTime` state
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* Upgrade to Basenine `v0.6.2`, add `xml` helper, make `xml` and `json` helpers available in `redact` helper
* URL encode the query
* Upgrade to Basenine `v0.6.3`
* Add the ability to set the insertion filter into CLI
* Resolve the conflict
* Upgrade Basenine to `v0.5.0` and check the insertion filter against syntax errors inside CLI
* Upgrade Basenine to `v0.5.1`
* Update the sums
* TRA-4235 Revert "Move Basenine binary into a separate container"
* Deploy the same agent image as a separate container for Basenine
Co-authored-by: Igor Gov <iggvrv@gmail.com>
* modified Dockerfile to work for both amd64 (Intel) and arm64 (M1)
* added changelog
* Update `Dockerfile` to have `ARCH` build argument
* Remove `docs/CHANGES.md`
* Upgrade the Basenine version from `v0.3.0` to `v0.4.6`
* Update `publish.yml` to have `ARCH` build argument
* Switch `BasenineImageRepo` to Docker Hub
* Have separate build arguments for `ARCH` and `GOARCH`
* Upgrade the Basenine version from `v0.4.6` to `v0.4.10`
* Oops forgot to update the 10th duplicated shell script
* Fix the oopsie and reduce duplications
* Fix `Dockerfile`
* Fix the incompatibility issue between Go plugins and gold linker in Alpine inside `Dockerfile`
* Fix `asm: xxhash_amd64.s:120: when dynamic linking, R15 is clobbered by a global variable access` error
* Update `Dockerfile` to have cross-compilation on an AMD64 machine
Also revert changes in the shell scripts
* Delete `debug.Dockerfile`
* Create a custom base (`debian:buster-slim` based) image for the shipped image
* Replace `mertyildiran/debian-pcap` with `up9inc/debian-pcap`
* Upgrade Basenine version to `v0.4.12`
* Use `debian:stable-slim` as the base
* Fix the indentation in the `Dockerfile`
* Update `publish.yml`
* Enable `publish.yml` for `feature/multiarch_build` branch
* Tag correctly and set `ARCH` Docker argument
* Remove the lines that are forgotten to be removed from the shell scripts
* Add `MizuAgentImageRepo` constant and use it as default `AgentImage` value
* Bring back `Set up Cloud SDK` step to `Build the CLI and publish` job
* Build ARM64 CLI for Linux as well
* Revert "Enable `publish.yml` for `feature/multiarch_build` branch"
This reverts commit d30be4c1f0.
* Revert Go 1.17 upgrade
* Remove `build_extensions_debug.sh` as well
* Make the `Dockerfile` to compile the agent statically
* Statically link the protocol extensions
* Fix `Dockerfile`
* Bring back `-s -w` flags
* Verify the signatures of the downloads in `dockcross/linux-arm64-musl`
* Revert modifications in some shell scripts
* Make the `BUILDARCH` and `TARGETARCH` separation in the `Dockerfile`
* Separate cross-compilation builder image into a separate repo named `up9inc/linux-arm64-musl-go-libpcap`
* Fill the shell script and specify the tag for `dockcross/linux-arm64-musl`
* Remove the unnecessary dependencies from `builder-native-base`
* Improve the comments in the `Dockerfile`
* Upgrade Basenine version to `v0.4.13`
* Fix `Dockerfile`
* Revert "Revert "Enable `publish.yml` for `feature/multiarch_build` branch""
This reverts commit 303e466bdc.
* Revert "Revert "Revert "Enable `publish.yml` for `feature/multiarch_build` branch"""
This reverts commit 0fe252bbdb.
* Remove `push-docker-debug` from the `Makefile`
* Rename `publish.yml` to `release.yml`
Co-authored-by: Alex Haiut <alex@up9.com>
* Move Basenine binary into a separate container
* Set `WorkingDir` to `shared.DataDirPath` in the `basenine` container
* Use `consts.go` to set the Basenine image and port
* Bring back the `net-wait-go` usage to prevent startup failures
* Include milliseconds information into the timestamps in the UI
* Upgrade Basenine version from `0.2.16` to `0.2.17`
* Increase the `width` of timestamp
* Bring back `getOldEntries` method using fetch API
* Determine no more data on top based on `leftOff` value
* Remove `entriesBuffer` state
* Always open WebSocket with some `leftOff` value
* Rename `leftOff` state to `leftOffBottom`
* Don't set the `focusedEntryId` through WebSocket if the WebSocket is closed
* Call `setQueriedCurrent` with addition
* Close WebSocket upon reaching to top
* Open WebSocket upon snapping to bottom
* Close the WebSocket on snap broken event instead
* Set queried current value to zero upon filter submit
* Upgrade `react-scrollable-feed-virtualized` version and use `scrollToIndex` function
* Change the footer text format
* Improve no more data top logic
* Fix `closeWebSocket()` call logic in `onSnapBrokenEvent` and handle `data.meta` being `null` in `getOldEntries`
* Fix the issues around fetching old records
* Clean up `EntriesList.module.sass`
* Decrement initial `leftOffTop` value by `2`
* Fix the order of `incomingEntries` in `getOldEntries`
* Request `leftOffTop - 1` from `fetchEntries`
* Limit the front-end total entries fetched through WebSocket count to `10000`
* Lose the UI performance gain that's provided by #452
* Revert "Fix the selected entry behavior by propagating the `focusedEntryId` through WebSocket (before #452) TRA-3983 (#513)"
This reverts commit 873f252544.
* Fix the issues caused by 09371f141f
* Upgrade Basenine version from `0.2.13` to `0.2.14`
* Upgrade Basenine version from `0.2.14` to `0.2.15`
* Fix the condition of "Fetch old records" button visibility
* Upgrade Basenine version from `0.2.15` to `0.2.16` and fix the UI code related to fetching old records
* Make `newEntries` constant
* Bring back `GetEntries` HTTP endpoint
* Upgrade Basenine version from `0.2.12` to `0.2.13`
* Accept negative `leftOff` value
* Remove `max`es from the validations
* Make `timeoutMs` optional
* Update the route comment
* Add `EntriesResponse` struct
* Handle unexpected socket close and replace the default `rlimit(100)` filter with `leftOff(-1)` filter
* Rename `dontClear` parameter to `resetEntriesBuffer` and remove negation
* Remove the extra negation on `nodefrag` flag's value
* Support IPv4 fragmentation and IPv6 at the same time
* Set `Method` and `StatusCode` fields correctly for `HTTP/2`
* Replace unnecessary `grpc` naming with `http2`
* Make the `gRPC` and `HTTP/2` distinction
* Fix the macros of `http` extension
* Fix the macros of other protocol extensions
* Update the method signature of `Represent`
* Fix the `HTTP/2` support
* Fix some minor issues
* Upgrade Basenine version from `0.2.10` to `0.2.11`
Sorts macros before expanding them and prioritize the long macros.
* Don't regex split the gRPC method name
* Re-enable `nodefrag` flag
* Upgrade Basenine version from `0.2.9` to `0.2.10`
Fixes the issues in `limit` and `rlimit` helpers that occur when they are on the left operand of a binary expression.
* Upgrade the client hash to latest
* Optimize the React code for feeding the entries
By building `EntryItem` only once and updating the `entries` state on meta query messages.
* Upgrade `react-scrollable-feed-virtualized` version from `1.4.3` to `1.4.8`
* Fix the `isSelected` state
* Set the query text before deciding the background to prevent lags while typing
* Upgrade Basenine version from `0.2.6` to `0.2.7`
* Set the query background color only if the query is same after the HTTP request and use `useEffect` instead
* Upgrade Basenine version from `0.2.7` to `0.2.8`
* Use `CancelToken` of `axios` instead of trying to check the query state
* Turn `updateQuery` function into a state hook
* Update the macro for `http`
* Do the `source.cancel()` call in `axios.CancelToken`
* Reduce client-side logging
* Fix the OOMKilled error by calling `debug.FreeOSMemory` periodically
* Remove `MAX_NUMBER_OF_GOROUTINES` environment variable
* Change the line
* Increase the default value of `TCP_STREAM_CHANNEL_TIMEOUT_MS` to `10000`
* Write the client and integrate to the new real-time database
* Refactor the WebSocket implementaiton for `/ws`
* Adapt the UI to the new filtering system
* Fix the rest of the issues in the UI
* Increase the buffer of the scanner
* Implement accessing single records
* Increase the buffer of another scanner
* Populate `Request` and `Response` fields of `MizuEntry`
* Add syntax highlighting for the query
* Add database to `Dockerfile`
* Fix some issues
* Update the `realtime_dbms` Git module commit hash
* Upgrade Gin version and print the query string
* Revert "Upgrade Gin version and print the query string"
This reverts commit aa09f904ee.
* Use WebSocket's itself to query instead of the query string
* Fix some errors related to conversion to HAR
* Fix the issues caused by the latest merge
* Fix the build error
* Fix PR validation GitHub workflow
* Replace the git submodule with latest Basenine version `0.1.0`
Remove `realtime_client.go` and use the official client library `github.com/up9inc/basenine/client/go` instead.
* Move Basenine host and port constants to `shared` module
* Reliably execute and wait for Basenine to become available
* Upgrade Basenine version
* Properly close WebSocket and data channel
* Fix the issues caused by the recent merge commit
* Clean up the TypeScript code
* Update `.gitignore`
* Limit the database size
* Add `Macros` method signature to `Dissector` interface and set the macros provided by the protocol extensions
* Run `go mod tidy` on `agent`
* Upgrade `github.com/up9inc/basenine/client/go` version
* Implement a mechanism to update the query using click events in the UI and use it for protocol macros
* Update the query on click to timestamps
* Fix some issues in the WebSocket and channel handling
* Update the query on clicks to status code
* Update the query on clicks to method, path and service
* Update the query on clicks to is outgoing, source and destination ports
* Add an API endpoint to validate the query against syntax errors
* Move the query background color state into `TrafficPage`
* Fix the logic in `setQuery`
* Display a toast message in case of a syntax error in the query
* Remove a call to `fmt.Printf`
* Upgrade Basenine version to `0.1.3`
* Fix an issue related to getting `MAX_ENTRIES_DB_BYTES` environment variable
* Have the `path` key in request details, in HTTP
* Rearrange the HTTP headers for the querying
* Do the same thing for `cookies` and `queryString`
* Update the query on click to table elements
Add the selectors for `TABLE` type representations in HTTP extension.
* Update the query on click to `bodySize` and `elapsedTime` in `EntryTitle`
* Add the selectors for `TABLE` type representations in AMQP extension
* Add the selectors for `TABLE` type representations in Kafka extension
* Add the selectors for `TABLE` type representations in Redis extension
* Define a struct in `tap/api.go` for the section representation data
* Add the selectors for `BODY` type representations
* Add `request.path` to the HTTP request details
* Change the summary string's field name from `path` to `summary`
* Introduce `queryable` CSS class for queryable UI elements and underline them on hover
* Instead of `N requests` at the bottom, make it `Displaying N results (queried X/Y)` and live update the values
Upgrade Basenine version to `0.2.0`.
* Verify the sha256sum of Basenine executable inside `Dockerfile`
* Pass the start time to web UI through WebSocket and always show the `EntriesList` footer
* Pipe the `stderr` of Basenine as well
* Fix the layout issues related to `CodeEditor` in the UI
* Use the correct `shasum` command in `Dockerfile`
* Upgrade Basenine version to `0.2.1`
* Limit the height of `CodeEditor` container
* Remove `Paused` enum `ConnectionStatus` in UI
* Fix the issue caused by the recent merge
* Add the filtering guide (cheatsheet)
* Update open cheatsheet button's title
* Update cheatsheet content
* Remove the old SQLite code, adapt the `--analyze` related code to Basenine
* Change the method signature of `NewEntry`
* Change the method signature of `Represent`
* Introduce `HTTPPair` field in `MizuEntry` specific to HTTP
* Remove `Entry`, `EntryId` and `EstimatedSizeBytes` fields from `MizuEntry`
Also remove the `getEstimatedEntrySizeBytes` method.
* Remove `gorm.io/gorm` dependency
* Remove unused `sensitiveDataFiltering` folder
* Increase the left margin of open cheatsheet button
* Add `overflow: auto` to the cheatsheet `Modal`
* Fix `GetEntry` method
* Fix the macro for gRPC
* Fix an interface conversion in case of AMQP
* Fix two more interface conversion errors in AMQP
* Make the `syncEntriesImpl` method blocking
* Fix a grammar mistake in the cheatsheet
* Adapt to the changes in the recent merge commit
* Improve the cheatsheet text
* Always display the timestamp in `en-US`
* Upgrade Basenine version to `0.2.2`
* Fix the order of closing Basenine connections and channels
* Don't close the Basenine channels at all
* Upgrade Basenine version to `0.2.3`
* Set the initial filter to `rlimit(100)`
* Make Basenine persistent
* Upgrade Basenine version to `0.2.4`
* Update `debug.Dockerfile`
* Fix a failing test
* Upgrade Basenine version to `0.2.5`
* Revert "Do not show play icon when disconnected (#428)"
This reverts commit 8af2e562f8.
* Upgrade Basenine version to `0.2.6`
* Make all non-informative things informative
* Make `100` a constant
* Use `===` in JavaScript no matter what
* Remove a forgotten `console.log`
* Add a comment and update the `query` in `syncEntriesImpl`
* Don't call `panic` in `GetEntry`
* Replace `panic` calls in `startBasenineServer` with `logger.Log.Panicf`
* Remove unnecessary `\n` characters in the logs
* Add OAS contract monitoring support
* Pass the contract failure reason to UI
* Fix the issues related to contract validation
* Fix rest of the issues in the UI
* Add documentation related to contract monitoring feature
* Fix a typo in the docs
* Unmarshal to `HTTPRequestResponsePair` only if the OAS validation is enabled
* Fix an issue caused by the merge commit
* Slightly change the logic in the `validateOAS` method
Change the `contractText` value to `No Breaches` or `Breach` and make the text `white-space: nowrap`.
* Retrieve and display the failure reason for both request and response
Also display the content of the contract/OAS file in the UI.
* Display the OAS under `CONTRACT` tab with syntax highlighting
Also fix the styling in the entry feed.
* Remove `EnforcePolicyFileDeprecated` constant
* Log the other errors as well
* Get context from caller instead
* Define a type for the contract status and make its values enum-like
* Remove an unnecessary `if` statement
* Validate OAS in the CLI before passing it to Agent
* Get rid of the `github.com/ghodss/yaml` dependency in `loadOAS` by using `LoadFromData`
* Fix an artifact from the merge conflict
* Separate HTTP related code into `extensions/http` as a Go plugin
* Move `extensions` folder into `tap` folder
* Move HTTP files into `tap/extensions/lib` for now
* Replace `orcaman/concurrent-map` with `sync.Map`
* Remove `grpc_assembler.go`
* Remove `github.com/up9inc/mizu/tap/extensions/http/lib`
* Add a build script to automatically build extensions from a known path and load them
* Start to define the extension API
* Implement the `run()` function for the TCP stream
* Add support of defining multiple ports to the extension API
* Set the extension name inside the extension
* Declare the `Dissect` function in the extension API
* Dissect HTTP request from inside the HTTP extension
* Make the distinction of outbound and inbound ports
* Dissect HTTP response from inside the HTTP extension
* Bring back the HTTP request-response pair matcher
* Return a `*api.RequestResponsePair` from the dissection
* Bring back the gRPC-HTTP/2 parser
* Fix the issues in `handleHTTP1ClientStream` and `handleHTTP1ServerStream`
* Call a function pointer to emit dissected data back to the `tap` package
* roee changes -
trying to fix agent to work with the "api" object) - ***still not working***
* small mistake in the conflicts
* Fix the issues that are introduced by the merge conflict
* Add `Emitter` interface to the API and send `OutputChannelItem`(s) to `OutputChannel`
* Fix the `HTTP1` handlers
* Set `ConnectionInfo` in HTTP handlers
* Fix the `Dockerfile` to build the extensions
* remove some unwanted code
* no message
* Re-enable `getStreamProps` function
* Migrate back from `gopacket/tcpassembly` to `gopacket/reassembly`
* Introduce `HTTPPayload` struct and `HTTPPayloader` interface to `MarshalJSON()` all the data structures that are returned by the HTTP protocol
* Read `socketHarOutChannel` instead of `filteredHarChannel`
* Connect `OutputChannelItem` to the last WebSocket means that finally the web UI started to work again
* Add `.env.example` to React app
* Marshal and unmarshal `*http.Request`, `*http.Response` pairs
* Move `loadExtensions` into `main.go` and map extensions into `extensionsMap`
* Add `Summarize()` method to the `Dissector` interface
* Add `Analyze` method to the `Dissector` interface and `MizuEntry` to the extension API
* Add `Protocol` struct and make it effect the UI
* Refactor `BaseEntryDetails` struct and display the source and destination ports in the UI
* Display the protocol name inside the details layout
* Add `Represent` method to the `Dissector` interface and manipulate the UI through this method
* Make the protocol color affect the details layout color and write protocol abbreviation vertically
* Remove everything HTTP related from the `tap` package and make the extension system fully functional
* Fix the TypeScript warnings
* Bring in the files related AMQP into `amqp` directory
* Add `--nodefrag` flag to the tapper and bring in the main AMQP code
* Implement the AMQP `BasicPublish` and fix some issues in the UI when the response payload is missing
* Implement `representBasicPublish` method
* Fix several minor issues
* Implement the AMQP `BasicDeliver`
* Implement the AMQP `QueueDeclare`
* Implement the AMQP `ExchangeDeclare`
* Implement the AMQP `ConnectionStart`
* Implement the AMQP `ConnectionClose`
* Implement the AMQP `QueueBind`
* Implement the AMQP `BasicConsume`
* Fix an issue in `ConnectionStart`
* Fix a linter error
* Bring in the files related Kafka into `kafka` directory
* Fix the build errors in Kafka Go files
* Implement `Dissect` method of Kafka and adapt request-response pair matcher to asynchronous client-server stream
* Do the "Is reversed?" checked inside `getStreamProps` and fix an issue in Kafka `Dissect` method
* Implement `Analyze`, `Summarize` methods of Kafka
* Implement the representations for Kafka `Metadata`, `RequestHeader` and `ResponseHeader`
* Refactor the AMQP and Kafka implementations to create the summary string only inside the `Analyze` method
* Implement the representations for Kafka `ApiVersions`
* Implement the representations for Kafka `Produce`
* Implement the representations for Kafka `Fetch`
* Implement the representations for Kafka `ListOffsets`, `CreateTopics` and `DeleteTopics`
* Fix the encoding of AMQP `BasicPublish` and `BasicDeliver` body
* Remove the unnecessary logging
* Remove more logging
* Introduce `Version` field to `Protocol` struct for dynamically switching the HTTP protocol to HTTP/2
* Fix the issues in analysis and representation of HTTP/2 (gRPC) protocol
* Fix the issues in summary section of details layout for HTTP/2 (gRPC) protocol
* Fix the read errors that freezes the sniffer in HTTP and Kafka
* Fix the issues in HTTP POST data
* Fix one more issue in HTTP POST data
* Fix an infinite loop in Kafka
* Fix another freezing issue in Kafka
* Revert "UI Infra - Support multiple entry types + refactoring (#211)"
This reverts commit f74a52d4dc.
* Fix more issues that are introduced by the merge
* Fix the status code in the summary section
* adding the cleaner again (why we removed it?).
add TODO: on the extension loop .
* fix dockerfile (remove deleting .env file) - it is found in dockerignore and fails to build if the file not exists
* fix GetEntrties ("/entries" endpoint) - working with "tapApi.BaseEntryDetail" (moved from shared)
* Fix an issue in the UI summary section
* Refactor the protocol payload structs
* Fix a log message in the passive tapper
* Adapt `APP_PORTS` environment variable to the new extension system and change its format to `APP_PORTS='{"http": ["8001"]}' `
* Revert "fix dockerfile (remove deleting .env file) - it is found in dockerignore and fails to build if the file not exists"
This reverts commit 4f514ae1f4.
* Bring in the necessary changes from f74a52d4dc
* Open the API server URL in the web browser as soon as Mizu is ready
* Make the TCP reader consists of a single Go routine (instead of two) and try to dissect in both client and server mode by rewinding
* Swap `TcpID` without overwriting it
* Sort extension by priority
* Try to dissect with looping through all the extensions
* fix getStreamProps function.
(it should be passed from CLI as it was before).
* Turn TCP reader back into two Goroutines (client and server)
* typo
* Learn `isClient` from the TCP stream
* Set `viewer` style `overflow: "auto"`
* Fix the memory leaks in AMQP and Kafka dissectors
* Revert some of the changes in be7c65eb6d
* Remove `allExtensionPorts` since it's no longer needed
* Remove `APP_PORTS` since it's no longer needed
* Fix all of the minor issues in the React code
* Check Kafka header size and fail-fast
* Break the dissectors loop upon a successful dissection
* Don't break the dissector loop. Protocols might collide
* Improve the HTTP request-response counter (still not perfect)
* Make the HTTP request-response counter perfect
* Revert "Revert some of the changes in be7c65eb6d3fb657a059707da3ca559937e59739"
This reverts commit 08e7d786d8.
* Bring back `filterItems` and `isHealthCheckByUserAgent` functions
* Remove some development artifacts
* remove unused and commented lines that are not relevant
* Fix the performance in TCP stream factory. Make it create two `tcpReader`(s) per extension
* Change a log to debug
* Make `*api.CounterPair` a field of `tcpReader`
* Set `isTapTarget` to always `true` again since `filterAuthorities` implementation has problems
* Remove a variable that's only used for logging even though not introduced by this branch
* Bring back the `NumberOfRules` field of `ApplicableRules` struct
* Remove the unused `NewEntry` function
* Move `k8sResolver == nil` check to a more appropriate place
* default healthChecksUserAgentHeaders should be empty array (like the default config value)
* remove spam console.log
* Rules button cause app to crash (access the service via incorrect property)
* Ignore all .env* files in docker build.
* Better caching in dockerfile: only copy go.mod before go mod download.
* Check for errors while loading an extension
* Add a comment about why `Protocol` is not a pointer
* Bring back the call to `deleteOlderThan`
* Remove the `nil` check
* Reduce the maximum allowed AMQP message from 128MB to 1MB
* Fix an error that only occurs when a Kafka broker is initiating
* Revert the change in b2abd7b990
* Fix the service name resolution in all protocols
* Remove the `anydirection` flag and fix the issue in `filterAuthorities`
* Pass `sync.Map` by reference to `deleteOlderThan` method
* Fix the packet capture issue in standalone mode that's introduced by the removal of `anydirection`
* Temporarily resolve the memory exhaustion in AMQP
* Fix a nil pointer dereference error
* Fix the CLI build error
* Fix a memory leak that's identified by `pprof`
Co-authored-by: Roee Gadot <roee.gadot@up9.com>
Co-authored-by: Nimrod Gilboa Markevich <nimrod@up9.com>