mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 06:19:03 +08:00
chore: set Cache-Control for auto complete requests (#2504)
This commit is contained in:
parent
c74896b213
commit
d4bfe3a096
@ -255,9 +255,12 @@ func (aH *APIHandler) RegisterMetricsRoutes(router *mux.Router, am *AuthMiddlewa
|
|||||||
|
|
||||||
func (aH *APIHandler) RegisterQueryRangeV3Routes(router *mux.Router, am *AuthMiddleware) {
|
func (aH *APIHandler) RegisterQueryRangeV3Routes(router *mux.Router, am *AuthMiddleware) {
|
||||||
subRouter := router.PathPrefix("/api/v3").Subrouter()
|
subRouter := router.PathPrefix("/api/v3").Subrouter()
|
||||||
subRouter.HandleFunc("/autocomplete/aggregate_attributes", am.ViewAccess(aH.autocompleteAggregateAttributes)).Methods(http.MethodGet)
|
subRouter.HandleFunc("/autocomplete/aggregate_attributes", am.ViewAccess(
|
||||||
subRouter.HandleFunc("/autocomplete/attribute_keys", am.ViewAccess(aH.autoCompleteAttributeKeys)).Methods(http.MethodGet)
|
withCacheControl(AutoCompleteCacheControlAge, aH.autocompleteAggregateAttributes))).Methods(http.MethodGet)
|
||||||
subRouter.HandleFunc("/autocomplete/attribute_values", am.ViewAccess(aH.autoCompleteAttributeValues)).Methods(http.MethodGet)
|
subRouter.HandleFunc("/autocomplete/attribute_keys", am.ViewAccess(
|
||||||
|
withCacheControl(AutoCompleteCacheControlAge, aH.autoCompleteAttributeKeys))).Methods(http.MethodGet)
|
||||||
|
subRouter.HandleFunc("/autocomplete/attribute_values", am.ViewAccess(
|
||||||
|
withCacheControl(AutoCompleteCacheControlAge, aH.autoCompleteAttributeValues))).Methods(http.MethodGet)
|
||||||
subRouter.HandleFunc("/query_range", am.ViewAccess(aH.QueryRangeV3)).Methods(http.MethodPost)
|
subRouter.HandleFunc("/query_range", am.ViewAccess(aH.QueryRangeV3)).Methods(http.MethodPost)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
pkg/query-service/app/http_utils.go
Normal file
22
pkg/query-service/app/http_utils.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package app
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// AutoCompleteCacheControlAge is the max-age for the cache-control header
|
||||||
|
// for the autocomplete endpoint.
|
||||||
|
// The default export interval for the SDK is 60 seconds, and ~10s at collector, so
|
||||||
|
// one minute should be a safe value.
|
||||||
|
AutoCompleteCacheControlAge = 60 * time.Second
|
||||||
|
)
|
||||||
|
|
||||||
|
func withCacheControl(maxAge time.Duration, h http.HandlerFunc) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%d", int(maxAge.Seconds())))
|
||||||
|
h(w, r)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user