Skip to main content

http_handler.go

http_handler.go - Overview

  1. Overview This file defines the APIHandler and its methods for handling HTTP requests related to querying, alerting, dashboards, and other functionalities of the SigNoz query service. It also includes route registration and various helper functions for request parsing, response writing, and error handling.

  2. Detailed Documentation

status (type)

  • Purpose: Defines a string type for representing the status of an API response.
  • Type: string

statusSuccess (constant)

  • Purpose: Represents the success status.
  • Type: status
  • Value: "success"

statusError (constant)

  • Purpose: Represents the error status.
  • Type: status
  • Value: "error"

defaultFluxInterval (constant)

  • Purpose: Defines the default interval for Flux queries.
  • Type: time.Duration
  • Value: 5 * time.Minute

NewRouter()

  • Purpose: Creates and configures a new mux.Router instance with encoded path support.
  • Returns: A pointer to the created mux.Router.

APIHandler (struct)

  • Purpose: Implements the query service public API, holding dependencies and configurations.
  • Fields:
    • reader: An interfaces.Reader for accessing business data.
    • skipConfig: A model.SkipConfig for skipping certain configurations.
    • appDao: A dao.ModelDao for performing CRUD operations on app objects.
    • ruleManager: A rules.Manager for handling rule CRUD operations.
    • featureFlags: An interfaces.FeatureLookup for querying feature flags.
    • querier: An interfaces.Querier for querying data.
    • querierV2: An interfaces.Querier for querying data v2.
    • queryBuilder: A queryBuilder.QueryBuilder for building queries.
    • preferSpanMetrics: A bool indicating preference for span metrics.
    • temporalityMap: A map[string]map[v3.Temporality]bool to cache metric temporalities.
    • temporalityMux: A sync.Mutex to protect access to the temporalityMap.
    • IntegrationsController: An integrations.Controller for managing integrations.
    • CloudIntegrationsController: A cloudintegrations.Controller for managing cloud integrations.
    • LogsParsingPipelineController: A logparsingpipeline.LogParsingPipelineController for managing log parsing pipelines.
    • SetupCompleted: A bool indicating if setup is completed.
    • Upgrader: A websocket.Upgrader for websocket connections.
    • UseLogsNewSchema: A bool indicating whether to use the new logs schema.
    • UseTraceNewSchema: A bool indicating whether to use the new trace schema.
    • hostsRepo: An inframetrics.HostsRepo for host-related metrics.
    • processesRepo: An inframetrics.ProcessesRepo for process-related metrics.
    • podsRepo: An inframetrics.PodsRepo for pod-related metrics.
    • nodesRepo: An inframetrics.NodesRepo for node-related metrics.
    • namespacesRepo: An inframetrics.NamespacesRepo for namespace-related metrics.
    • clustersRepo: An inframetrics.ClustersRepo for cluster-related metrics.
    • deploymentsRepo: An inframetrics.DeploymentsRepo for deployment-related metrics.
    • daemonsetsRepo: An inframetrics.DaemonSetsRepo for daemonset-related metrics.
    • statefulsetsRepo: An inframetrics.StatefulSetsRepo for statefulset-related metrics.
    • jobsRepo: An inframetrics.JobsRepo for job-related metrics.
    • SummaryService: A metricsexplorer.SummaryService for summary of metrics
    • pvcsRepo: An inframetrics.PvcsRepo for persistent volume claims metrics.
    • JWT: A authtypes.JWT for JWT authentication.
    • AlertmanagerAPI: An alertmanager.API for managing alerts.
    • Signoz: A signoz.SigNoz instance.
    • Preference: A preference.API for managing user and org preferences.

APIHandlerOpts (struct)

  • Purpose: Configuration options for creating an APIHandler.
  • Fields:
    • Reader: An interfaces.Reader for accessing business data.
    • SkipConfig: A model.SkipConfig for skipping certain configurations.
    • PreferSpanMetrics: A bool indicating preference for span metrics.
    • AppDao: A dao.ModelDao for performing CRUD operations on app objects.
    • RuleManager: A rules.Manager for handling rule CRUD operations.
    • FeatureFlags: An interfaces.FeatureLookup for querying feature flags.
    • IntegrationsController: An integrations.Controller for managing integrations.
    • CloudIntegrationsController: A cloudintegrations.Controller for managing cloud integrations.
    • LogsParsingPipelineController: A logparsingpipeline.LogParsingPipelineController for managing log parsing pipelines.
    • Cache: A cache.Cache for caching data.
    • FluxInterval: A time.Duration for the Flux query interval.
    • UseLogsNewSchema: A bool indicating whether to use the new logs schema.
    • UseTraceNewSchema: A bool indicating whether to use the new trace schema.
    • JWT: A authtypes.JWT for JWT authentication.
    • AlertmanagerAPI: An alertmanager.API for managing alerts.
    • Signoz: A signoz.SigNoz instance.
    • Preference: A preference.API for managing user and org preferences.

NewAPIHandler(opts APIHandlerOpts)

  • Purpose: Creates a new APIHandler instance with the given options. It initializes the querier, repositories, and other dependencies. It also checks if at least one user exists and sets SetupCompleted accordingly.
  • Parameters:
    • opts: An APIHandlerOpts struct containing configuration options.
  • Returns: A pointer to the created APIHandler and an error, if any.

structuredResponse (struct) - Deprecated

  • Purpose: Structure for API responses (deprecated).
  • Fields:
    • Data: The response data (interface{}).
    • Total: Total number of items (int).
    • Limit: Limit of items per page (int).
    • Offset: Offset of the current page (int).
    • Errors: List of errors (slice of structuredError).

structuredError (struct) - Deprecated

  • Purpose: Structure for API errors (deprecated).
  • Fields:
    • Code: Error code (int).
    • Msg: Error message (string).

ApiResponse (struct) - Deprecated

  • Purpose: Generic API response structure (deprecated).
  • Fields:
    • Status: The status of the response (status).
    • Data: The response data (interface{}).
    • ErrorType: The type of error (model.ErrorType).
    • Error: The error message (string).

RespondError(w http.ResponseWriter, apiErr model.BaseApiError, data interface{}) - Deprecated

  • Purpose: Writes an error response to the HTTP response writer (deprecated).
  • Parameters:
    • w: The http.ResponseWriter.
    • apiErr: The model.BaseApiError representing the error.
    • data: Additional data to include in the response (interface{}).
  • Returns: None

writeHttpResponse(w http.ResponseWriter, data interface{}) - Deprecated

  • Purpose: Writes a successful HTTP response to the response writer (deprecated).
  • Parameters:
    • w: The http.ResponseWriter.
    • data: The data to include in the response (interface{}).
  • Returns: None

RegisterQueryRangeV3Routes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes related to query range version 3.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

RegisterInfraMetricsRoutes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes for infrastructure metrics.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

RegisterWebSocketPaths(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers WebSocket paths for query progress updates.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

RegisterQueryRangeV4Routes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes related to query range version 4.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

Respond(w http.ResponseWriter, data interface{}) - Deprecated

  • Purpose: Writes a JSON response with a success status (deprecated).
  • Parameters:
    • w: The http.ResponseWriter.
    • data: The data to be written in the response (interface{}).
  • Returns: None

RegisterPrivateRoutes(router *mux.Router)

  • Purpose: Registers private API routes.
  • Parameters:
    • router: The mux.Router to register the routes on.
  • Returns: None

RegisterRoutes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes for various functionalities like alerts, rules, dashboards, authentication, etc.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

MetricExplorerRoutes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes for metric explorer functionalities.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

Intersection(a, b []int) ([]int)

  • Purpose: Finds the intersection of two integer slices.
  • Parameters:
    • a: The first integer slice.
    • b: The second integer slice.
  • Returns: A new integer slice containing the common elements.

getRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a rule by its ID and writes it to the response.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

PopulateTemporality(ctx context.Context, qp *v3.QueryRangeParamsV3) error

  • Purpose: Populates the temporality for each metric in the query if it is missing.
  • Parameters:
    • ctx: The context.
    • qp: The query range parameters.
  • Returns: An error if any.

listDowntimeSchedules(w http.ResponseWriter, r *http.Request)

  • Purpose: Lists all downtime schedules.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getDowntimeSchedule(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a downtime schedule by its ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

createDowntimeSchedule(w http.ResponseWriter, r *http.Request)

  • Purpose: Creates a new downtime schedule.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

editDowntimeSchedule(w http.ResponseWriter, r *http.Request)

  • Purpose: Edits an existing downtime schedule.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

deleteDowntimeSchedule(w http.ResponseWriter, r *http.Request)

  • Purpose: Deletes a downtime schedule by its ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getRuleStats(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves statistics for a rule, including total triggers, average resolution time, etc.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getOverallStateTransitions(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the state transitions of a rule over time.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

metaForLinks(ctx context.Context, rule *rules.GettableRule) ([]v3.FilterItem, []v3.AttributeKey, map[string]v3.AttributeKey)

  • Purpose: Retrieves metadata like filter items, group by attributes and attribute keys, necessary to prepare context links based on rule type (logs or traces).
  • Parameters:
    • ctx: The context.Context
    • rule: The pointer to rules.GettableRule
  • Returns: filterItems ([]v3.FilterItem), groupBy ([]v3.AttributeKey), keys (map[string]v3.AttributeKey)

getRuleStateHistory(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the history of a rule's state changes.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getRuleStateHistoryTopContributors(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the top contributors to a rule's state changes.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

listRules(w http.ResponseWriter, r *http.Request)

  • Purpose: Lists all rules.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getDashboards(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a list of dashboards, potentially filtered by tags.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

deleteDashboard(w http.ResponseWriter, r *http.Request)

  • Purpose: Deletes a dashboard by its UUID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

prepareQuery(r *http.Request) (string, error)

  • Purpose: Prepares a query for dashboard variables by extracting and validating data from the request body.
  • Parameters:
    • r: The http.Request containing the query and variables.
  • Returns: The prepared query string and an error, if any.

queryDashboardVarsV2(w http.ResponseWriter, r *http.Request)

  • Purpose: Executes a query for dashboard variables and writes the result to the response.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

updateDashboard(w http.ResponseWriter, r *http.Request)

  • Purpose: Updates a dashboard by its UUID with data from the request body.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getDashboard(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a dashboard by its UUID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

createDashboards(w http.ResponseWriter, r *http.Request)

  • Purpose: Creates a new dashboard with data from the request body.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

testRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Tests a rule by sending a test notification.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

deleteRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Deletes a rule by its ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

patchRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Patches/updates a rule by its ID with data from the request body.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

editRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Edits/Updates a rule by its ID with data from the request body.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

createRule(w http.ResponseWriter, r *http.Request)

  • Purpose: Creates a new rule with data from the request body.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

queryRangeMetrics(w http.ResponseWriter, r *http.Request)

  • Purpose: Executes a query range request for metrics.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

queryMetrics(w http.ResponseWriter, r *http.Request)

  • Purpose: Executes an instant query request for metrics.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

submitFeedback(w http.ResponseWriter, r *http.Request)

  • Purpose: Submits user feedback.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

registerEvent(w http.ResponseWriter, r *http.Request)

  • Purpose: Registers a telemetry event.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getTopOperations(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the top operations for a service.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getUsage(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the usage data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getServicesTopLevelOps(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the top-level operations for services.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getServices(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a list of services.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

dependencyGraph(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the dependency graph of services.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getServicesList(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a simplified list of services.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

GetWaterfallSpansForTraceWithMetadata(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves waterfall spans for a trace with metadata.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

GetFlamegraphSpansForTrace(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves flamegraph spans for a trace.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

listErrors(w http.ResponseWriter, r *http.Request)

  • Purpose: Lists errors based on the given query parameters.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

countErrors(w http.ResponseWriter, r *http.Request)

  • Purpose: Counts errors based on the given query parameters.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getErrorFromErrorID(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves an error by its ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getNextPrevErrorIDs(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the next and previous error IDs.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getErrorFromGroupID(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves an error by its group ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

setTTL(w http.ResponseWriter, r *http.Request)

  • Purpose: Sets the Time-To-Live (TTL) setting.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getTTL(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the Time-To-Live (TTL) setting.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getDisks(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the list of disks.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getVersion(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the version of the service.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getFeatureFlags(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the list of feature flags.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

FF() interfaces.FeatureLookup

  • Purpose: Returns the feature flags interface.
  • Returns: An interfaces.FeatureLookup instance.

CheckFeature(f string) bool

  • Purpose: Checks if a feature is enabled.
  • Parameters:
    • f: The name of the feature.
  • Returns: true if the feature is enabled, false otherwise.

getHealth(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the health status of the service.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

inviteUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Invites a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

inviteUsers(w http.ResponseWriter, r *http.Request)

  • Purpose: Invites users in bulk.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getInvite(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves invite details by token.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

revokeInvite(w http.ResponseWriter, r *http.Request)

  • Purpose: Revokes an invite by email.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

listPendingInvites(w http.ResponseWriter, r *http.Request)

  • Purpose: Lists pending invites.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

Register(w http.ResponseWriter, r *http.Request)

  • Purpose: Public method to register a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

registerUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Registers a new user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

precheckLogin(w http.ResponseWriter, r *http.Request)

  • Purpose: Prechecks the login attempt, providing validation and potentially source information.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

loginUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Logs in a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

listUsers(w http.ResponseWriter, r *http.Request)

  • Purpose: Lists all users.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves a user by ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

editUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Edits a user's name and profile picture URL.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

deleteUser(w http.ResponseWriter, r *http.Request)

  • Purpose: Deletes a user by ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getRole(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves the role of a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

editRole(w http.ResponseWriter, r *http.Request)

  • Purpose: Edits the role of a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getOrgs(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves all organizations.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getOrg(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves an organization by ID.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

editOrg(w http.ResponseWriter, r *http.Request)

  • Purpose: Edits an organization.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getOrgUsers(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves users for a specific organization.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getResetPasswordToken(w http.ResponseWriter, r *http.Request)

  • Purpose: Creates a reset password token for a user.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

resetPassword(w http.ResponseWriter, r *http.Request)

  • Purpose: Resets a user's password.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

changePassword(w http.ResponseWriter, r *http.Request)

  • Purpose: Changes a user's password.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

HandleError(w http.ResponseWriter, err error, statusCode int) bool

  • Purpose: Handles errors by writing an error response to the http.ResponseWriter.
  • Parameters:
    • w: The http.ResponseWriter.
    • err: The error object.
    • statusCode: The HTTP status code to return.
  • Returns: true if an error was handled, false otherwise.

WriteJSON(w http.ResponseWriter, r *http.Request, response interface{})

  • Purpose: Writes a JSON response to the http.ResponseWriter. Supports pretty printing if the pretty query parameter is set.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
    • response: The data to be serialized as JSON.
  • Returns: None

RegisterMessagingQueuesRoutes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes for messaging queues.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

RegisterThirdPartyApiRoutes(router *mux.Router, am *AuthMiddleware)

  • Purpose: Registers API routes for third-party API integrations.
  • Parameters:
    • router: The mux.Router to register the routes on.
    • am: The AuthMiddleware for authentication.
  • Returns: None

uniqueIdentifier(params []string, separator string) string

  • Purpose: Generates a unique identifier by joining strings with a separator.
  • Parameters:
    • params: A slice of strings.
    • separator: The separator string.
  • Returns: The generated unique identifier.

onboardProducers(w http.ResponseWriter, r *http.Request)

  • Purpose: Handles the onboarding of Kafka producers.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

onboardConsumers(w http.ResponseWriter, r *http.Request)

  • Purpose: Handles the onboarding of Kafka consumers.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

onboardKafka(w http.ResponseWriter, r *http.Request)

  • Purpose: Handles the general onboarding of Kafka.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getNetworkData(w http.ResponseWriter, r *http.Request)

  • Purpose: Gets network latency data for kafka.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getProducerData(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves data for Kafka producers.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getConsumerData(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves data for Kafka consumers.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getPartitionOverviewLatencyData(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves partition overview latency data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getConsumerPartitionLatencyData(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves consumer partition latency data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getProducerThroughputOverview(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves producer throughput overview data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getProducerThroughputDetails(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves detailed producer throughput data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The http.Request.
  • Returns: None

getConsumerThroughputOverview(w http.ResponseWriter, r *http.Request)

  • Purpose: Retrieves consumer throughput overview data.
  • Parameters:
    • w: The http.ResponseWriter.
    • r: The `http.