* logos switched and put in place
* removed unnessesry commas
* fix warning
* remove dev code
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* debug builds and gcflags
* update dockerfile for debug
* service map routes and controller
* service map graph structure
* service map interface and new methods
* adding service map edges from mizu entries
* new service map count methods
* implementing the status endpoint
* ServiceMapResponse and ServiceMapEdge models
* service map get endpoint logic
* reset logic and endpoint
* fixed service map get status
* improvements to graph node structure
* front-end implementation and service map buttons
* new render endpoint to render the graph in real time
* spinner sass
* new ServiceMapModal component
* testing react-force-graph-2d lib
* Improvements to service map graph structure, added node id and updated edge source/destination type
* Revert "testing react-force-graph-2d lib"
This reverts commit 1153938386.
* testing react-graph-vis lib
* updated to work with react-graph-vis lib
* removed render endpoint
* go mod tidy
* serviceMap config flag
* using the serviceMap config flag
* passing mizu config to service map as a dependency
* service map tests
* Removed print functions
* finished service map tests
* new service property
* service map controller tests
* moved service map reset button to service map modal
reset closes the modal
* service map modal refresh button and logic
* reset button resets data and refresh
* service map modal close button
* node size/edge size based on the count value
edge color based on protocol
* nodes and edges shadow
* enabled physics to avoid node overlap, changed kafka protocol color to dark green
* showing edges count values and fixed bidirectional edges overlap
* go mod tidy
* removed console.log
* Using the destination node protocol instead of the source node protocol
* Revert "debug builds and gcflags"
Addressed by #624 and #626
This reverts commit 17ecaece3e.
* Revert "update dockerfile for debug"
Addressed by #635
This reverts commit 5dfc15b140.
* using the entire tap Protocol struct instead of only the protocol name
* using the backend protocol background color for node colors
* fixed test, the node list order can change
* re-factoring to get 100% coverage
* using protocol colors just for edges
* re-factored service map to use TCP Entry data. Node key is the entry ip-address instead of the name
* fallback to ip-address when entry name is unresolved
* re-factored front-end
* adjustment to main div style
* added support for multiple protocols for the same edge
* using the item protocol instead of the extension variable
* fixed controller tests
* displaying service name and ip-address on graph nodes
* fixed service map test, we cannot guarantee the slice order
* auth middleware
* created a new pkg for the service map
* re-factoring
* re-factored front-end
* reverting the import order as previous
* Aligning with other UI feature flags handling
* we don't need to get the status anymore, we have window["isServiceMapEnabled"]
* small adjustments
* renamed from .tsx to .ts
* button styles and minor improvements
* moved service map modal from trafficPage to app component
Co-authored-by: Igor Gov <igor.govorov1@gmail.com>
* parent d97d481392
author Amit Fainholts <amit@up9.com> 1641398982 +0200
committer Igor Gov <igor.govorov1@gmail.com> 1642070154 +0200
init
* revert
* small fixes
* api request to oas added
* redoc version downgraded and remove redundant package-lock
* remove redundant package json
* redoc updated to latest
* libraries updated to prevent vulnerabilities
* pr fixes
* remove ! from global var
* update useEffect in OasModal and other pr fixes
* change errors messages
Co-authored-by: Amit Fainholts <amit@up9.com>
Co-authored-by: Igor Gov <igor.govorov1@gmail.com>
Co-authored-by: lirazyehezkel <61656597+lirazyehezkel@users.noreply.github.com>
* add shortcuts listeners and config
* key added
* listen for shortcut on input
* refactoring listensing to Enter Press
* comment for support
Co-authored-by: Leon <>
Support source IP resolving for HTTP traffic in Istio service mesh.
If X-Forwarded-For HTTP request header is present, replace the source address with the left-most address in X-Forwarded-For (earliest in Envoy implementation of this header).
This allows Mizu to resolve source IPs in Istio service meshes, if the use_remote_address option is on. Added instructions on how to turn it on.
* Upgrade Basenine version from `0.2.26` to `0.3.0`
* Remove `Summarize` method from `Dissector` interface and refactor the data structures in `tap/api/api.go`
* Rename `MizuEntry` to `Entry` and `BaseEntryDetails` to `BaseEntry`
* Populate `ContractStatus` field as well
* Update the cheatsheet
* Upgrade the Basenine version in the helm chart as well
* Remove a forgoten `console.log` call
* Use `react-lowlight` to highlight and `json-beautify` to prettify the `EntryBodySection`
* Bring back the line numbers
* Make the Base64 decoding optional but make it `true` by default
* Align line numbers to right and don't have a dot character
* Make line numbers semi transparent
* Make `markers` code more elegant
* Prettify XML as well
* Remove unnecessary fields and split `service` into `src.name` and `dst.name`
* Don't fall back to IP address but instead display `[Unresolved]` text
* Fix the CSS issues in the plus icon position and replace the separator `->` text with `SwapHorizIcon`
* 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
* Add `Queryable` component to show a green circle and use it in `EntryViewLine`
* Refactor `Queryable` component
* Use the `Queryable` component `EntryDetailed`
* Use the `Queryable` component `Summary`
* Instead of passing the style to `Queryable`, pass the children components directly
* Make `useTooltip = true` by default in `Queryable`
* Refactor a lot of styling to achieve using `Queryable` in `Protocol` component
* Migrate the last queryable elements in `EntryListItem` to `Queryable` component
* Fix some of the styling issues
* Make horizontal `Protocol` `Queryable` too
* Remove unnecessary child constants
* Revert some of the changes in 2a93f365f5
* Fix rest of the styling issues
* Fix one more styling issue
* Update the screenshots and text in the cheatsheet according to the change
* Use `let` not `var`
* Add missing dependencies to the React hook
* Handle unexpected socket close and replace the default `rlimit(100)` filter with `leftOff(-1)` filter
* Rename `dontClear` parameter to `resetEntriesBuffer` and remove negation
* Revert the select entry behavior into its original state RACING! (before #452) [TRA-3983 alternative 3]
* Remove the remaining `forceSelect`(s)
* Add a missing `focusedEntryId` prop
* Fix the race condition
* Propagate the `focusedEntryId` through WebSocket to prevent racing
* 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
* 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
* type:latency to slo and latency field to response-time
* remove comment from import
* Friendly message on ignored rules and format
* formatting
* change conditional to catch negative values and ignore it
* Fix Bug Alon Reported
* sliceUtils to shared
* Omit the `RULES` tab if the policy rules feature is inactive (WIP)
* Propagate the boolean value `isRulesEnabled` from file read error to UI
* Remove the debug log
* Fix rules
* Not reay, error on running
* Empty dissector Rules()
* almost working
* Finally, fixed
* undo changes on agent/pkg/utils/har.go
* fix not showing service on rules detail
* Update tap/api/api.go
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* Update agent/pkg/controllers/entries_controller.go
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* Update agent/pkg/controllers/entries_controller.go
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
* unwrap Data
* Fix bug off using more than one latency rule that always get the first.
* fix json type, decoding base64 before unmarshal
* Run `go mod tidy` on `cli/go.sum`
* Fix the linting issues
* Remove a `FIXME` comment
* Remove a CSS rule
* Adapt `ruleNumberText` CSS class to the design language of the UI
* Fix an issue in the UI related to `rule.Latency` slipping out
* Removed unecessary codes.
Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
Co-authored-by: M. Mert Yildiran <mehmet@up9.com>
* Make `ScrollableFeed` virtualized by replacing `react-scrollable-feed` with `react-scrollable-feed-virtualized`
* fix get new entries button
* Fix the not populated `Protocol` struct in case of `GetEntries` endpoint is called
Co-authored-by: Liraz Yehezkel <lirazy@up9.com>