This commit is contained in:
asteam
2025-09-26 19:17:30 +03:00
parent 48e2b0f2f9
commit 1ccc37a104
1022 changed files with 6440 additions and 1688 deletions

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeCPULoadRequest struct {

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeMemoryAvailableRequest struct {
@@ -18,7 +18,7 @@ type ComputeMemoryAvailableRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeMemoryUnusedRequest struct {
@@ -18,7 +18,7 @@ type ComputeMemoryUnusedRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeMemoryUsableRequest struct {
@@ -18,7 +18,7 @@ type ComputeMemoryUsableRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeMemoryUsageRequest struct {
@@ -18,7 +18,7 @@ type ComputeMemoryUsageRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeMemoryUsedRequest struct {
@@ -18,7 +18,7 @@ type ComputeMemoryUsedRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeReadBytesRequest struct {
@@ -18,11 +18,11 @@ type ComputeReadBytesRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeReadRequestsRequest struct {
@@ -18,11 +18,11 @@ type ComputeReadRequestsRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeReceiveBytesRequest struct {
@@ -18,11 +18,11 @@ type ComputeReceiveBytesRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeReceivePacketsRequest struct {
@@ -18,11 +18,11 @@ type ComputeReceivePacketsRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeTransmitBytesRequest struct {
@@ -18,11 +18,11 @@ type ComputeTransmitBytesRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeTransmitPacketsRequest struct {
@@ -18,11 +18,11 @@ type ComputeTransmitPacketsRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeWriteBytesRequest struct {
@@ -18,11 +18,11 @@ type ComputeWriteBytesRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
type ComputeWriteRequestsRequest struct {
@@ -18,11 +18,11 @@ type ComputeWriteRequestsRequest struct {
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: true
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: true
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}

View File

@@ -0,0 +1,77 @@
package prometheus
import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
)
const (
ComputeCPULoad = "computeCPUload"
ComputeMemoryUsage = "computeMemoryUsage"
ComputeMemoryUsable = "computeMemoryUsable"
ComputeMemoryUnused = "computeMemoryUnused"
ComputeMemoryUsed = "computeMemoryUsed"
ComputeMemoryAvailable = "computeMemoryAvailable"
ComputeReadBytes = "computeReadBytes"
ComputeReadRequests = "computeReadRequests"
ComputeReceiveBytes = "computeReceiveBytes"
ComputeTransmitBytes = "computeTransmitBytes"
ComputeTransmitPackets = "computeTransmitPackets"
ComputeWriteBytes = "computeWriteBytes"
ComputeWriteRequests = "computeWriteRequests"
)
type ComputesRequest struct {
// List of compute IDs to fetch metrics for
// Required: true
ComputeIDs []uint64 `url:"computeIds" json:"computeIds" validate:"required"`
// List of compute IDs to fetch metrics for
// Required: true
MetricIDs []string `url:"metricIds" json:"metricIds" validate:"required"`
// Time to loads of statistic in seconds
// Required: false
ForLast uint64 `url:"forLast,omitempty" json:"forLast,omitempty"`
// The reading interval in seconds
// Required: false
Step uint64 `url:"step,omitempty" json:"step,omitempty"`
// Number of zeros after the decimal point
// Required: false
DecimalPlaces uint64 `url:"decimalPlaces,omitempty" json:"decimalPlaces,omitempty"`
}
// Get multiple metrics for multiple compute instances
func (p Prometheus) Computes(ctx context.Context, req ComputesRequest) (*ComputesData, error) {
res, err := p.ComputesRaw(ctx, req)
if err != nil {
return nil, err
}
info := ComputesData{}
err = json.Unmarshal(res, &info)
if err != nil {
return nil, err
}
return &info, nil
}
// GetRaw gets information about compute as an array of bytes
func (p Prometheus) ComputesRaw(ctx context.Context, req ComputesRequest) ([]byte, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudbroker/prometheus/computes"
res, err := p.client.DecortApiCall(ctx, http.MethodPost, url, req)
return res, err
}

View File

@@ -11,3 +11,30 @@ type PrometheusPoint struct {
// Timestamp the Unix timestamp.
Timestamp uint64 `json:"timestamp"`
}
// ComputesData represents an array of data points for computes
type ComputesData []ItemCompute
// ItemCompute represents a single data of compute
type ItemCompute struct {
// Compute ID
ComputeID uint64 `json:"computeId"`
// Array of metrics
Metrics []ItemMetric `json:"metrics"`
// Error
Error string `json:"error"`
}
// ItemMetric represents a single data point of metric
type ItemMetric struct {
// Metric ID
MetricID string `json:"metricId"`
// Data represents an array of data points
Data PrometheusData `json:"data"`
// Error
Error string `json:"error"`
}

View File

@@ -1,7 +1,7 @@
package prometheus
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/interfaces"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/interfaces"
)
// Structure for creating request to prometheus