Srikanth Chekuri 5e349d8294
chore: dashboard locking ee query-service (#3856)
* chore: dashboard locking ee query-service

* chore: remove print statements

* chore: remove unused imports

* chore: no one is allowed to edit/delete the locked dashboard

---------

Co-authored-by: Srikanth Chekuri <srikanth@Srikanths-MacBook-Pro.local>
2023-11-02 22:52:50 +05:30

71 lines
1.4 KiB
Go

package sqlite
import (
"context"
"github.com/jmoiron/sqlx"
"go.signoz.io/signoz/pkg/query-service/model"
)
const defaultApdexThreshold = 0.5
func (mds *ModelDaoSqlite) GetApdexSettings(ctx context.Context, services []string) ([]model.ApdexSettings, *model.ApiError) {
var apdexSettings []model.ApdexSettings
query, args, err := sqlx.In("SELECT * FROM apdex_settings WHERE service_name IN (?)", services)
if err != nil {
return nil, &model.ApiError{
Err: err,
}
}
query = mds.db.Rebind(query)
err = mds.db.Select(&apdexSettings, query, args...)
if err != nil {
return nil, &model.ApiError{
Err: err,
}
}
// add default apdex settings for services that don't have any
for _, service := range services {
var found bool
for _, apdexSetting := range apdexSettings {
if apdexSetting.ServiceName == service {
found = true
break
}
}
if !found {
apdexSettings = append(apdexSettings, model.ApdexSettings{
ServiceName: service,
Threshold: defaultApdexThreshold,
})
}
}
return apdexSettings, nil
}
func (mds *ModelDaoSqlite) SetApdexSettings(ctx context.Context, apdexSettings *model.ApdexSettings) *model.ApiError {
_, err := mds.db.NamedExec(`
INSERT OR REPLACE INTO apdex_settings (
service_name,
threshold,
exclude_status_codes
) VALUES (
:service_name,
:threshold,
:exclude_status_codes
)`, apdexSettings)
if err != nil {
return &model.ApiError{
Err: err,
}
}
return nil
}