memory-bank/components/blobserve.md
Blobserve is a service that provides static assets from OCI (Open Container Initiative) images. It serves as a specialized content delivery mechanism for container images, allowing efficient access to static content within those images.
The primary purpose of Blobserve is to:
Blobserve operates as an HTTP server that:
main.go: Entry point that calls the Execute function from the cmd packagecmd/root.go: Defines the root command and basic service configurationcmd/run.go: Implements the main server functionalitypkg/blobserve: Contains the core implementation of the blob serving functionalitycomponents/common-go:lib: Common Go utilities used across Gitpodcomponents/registry-facade-api/go:lib: API definitions for registry facadecomponents/registry-facade:lib: Library for interacting with container registriescontainerd/containerd: For container image handlingdocker/cli: For Docker configuration handlingprometheus: For metrics and monitoringspf13/cobra: For command-line interfaceBlobserve is configured via a JSON configuration file that includes:
Blobserve integrates with:
Blobserve is typically used to:
Blobserve exposes several Prometheus metrics:
http_client_requests_total: Counter of outgoing HTTP requestshttp_client_requests_duration_seconds: Histogram of outgoing HTTP request durationshttp_server_requests_total: Counter of incoming HTTP requestshttp_server_requests_duration_seconds: Histogram of incoming HTTP request durations