Skip to main content
Version: 0.9.x

Terminology

Aggregated Lunar Metrics

Metrics collected by Lunar Proxy about latency and status codes for each endpoint, aggregated over a certain period.

Client-Side Throttling

A mechanism that controls the frequency and quantity of requests sent by an application to comply with a server's rate limit and prevent exponential backoff penalties or exceeding API usage quotas.

Diagnose

Generate and export near real-time data from Lunar Proxy about requests and responses using diagnosis plugins such as the HAR Exporter. Note that comparably to remedy plugins, diagnosis plugins are being executed asynchronously with minimal performance impact.

Discover

Summarized data grouped by endpoint about requests and responses in a certain timeframe, including the number of requests, responses broken down by status codes, and average transaction duration.

Endpoint

A specific method + URL (excluding scheme and port) that can be used to access an API resource. It can contain path parameters and wildcards.

Healthcheck

An API used to check the status of Lunar Proxy by making a GET request to <lunar_proxy_hostname>:8040/healthcheck. A response with the status code 200 indicates that Lunar Proxy is running.

HTTP Archive (HAR) Format

A format for logging HTTP transactions that allows storing requests and responses in a structured format, commonly used for offline analysis. More information can be found here.

HTTP Transaction

The process of a client sending an HTTP request to a server and receiving an HTTP response, including details such as the HTTP method, URL, headers, and response status code.

Local Sandbox

A testing environment provided by Lunar Proxy for experimenting with policies, remedies, and diagnoses without affecting production traffic.

Lunar Action

An action that affects an HTTP transaction by returning a LunarAction, which can be a request action or a response action. Common action types include No Op, Modify Request, and Modify Response.

Lunar Engine

A process written in Go that applies remedies and diagnoses based on defined policies. It receives events for relevant requests and responses and applies the appropriate actions.

Lunar Proxy

A API proxy component that performs functions such as Discover, Diagnose, and Remediate for API clients. It can collect aggregated data about latency and status codes for each endpoint.

Lunar Interceptor

A lightweight component that intercepts outgoing internet traffic from an application and redirects it to Lunar Proxy. If Lunar Proxy fails, the interceptor steps in with its Failsafe Mechanism and routes the request to its original destination.

Modify Request

A request action type that modifies a request before sending it to the provider. For example, the Account Orchestration remedy uses this action to change the account being used in the request.

Modify Response

A response action type that modifies a response before sending it to the client. For example, the Retry remedy uses this action to add a header letting the interceptor know it should retry the request.

No Op

An action type that does nothing. It is used as a placeholder or default action when no other action is specified.

Policy

A list of remedies and diagnoses defined on a specific endpoint or globally for all traffic. Policies are configured in the policies.yaml file.

Remediate

Use built-in remedies to solve common API consumption problems, such as Response-Based Throttling, Strategy-Based Throttling, Account Orchestration, Retry, and Fixed Response.

Rate Limit

A technique for controlling the number of requests a client can make to a server within a certain period of time to prevent abuse and ensure fair usage. Exceeding the rate limit results in a specific status code, often 429 ("Too Many Requests").

Strategy-Based Throttling

A type of throttling that controls the frequency and quantity of requests based on predefined strategies, such as allowing a certain number of requests per minute, hour, or day.

Wildcards

Characters or symbols that represent one or more characters in a URL path parameter, allowing for flexible matching of endpoints. Common wildcards include * and **.

Click me for guidance 😀