Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ena-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
---
metadata:
schemaVersion: 2.0.0
release: 1.5.1
release: 1.5.2
repository:
codename: 3.1
component: main
Expand All @@ -18,7 +18,7 @@ packages:
version: 1.10.1
ociArtifact: edge-orch/en/deb/node-agent
- name: platform-manageability-agent
version: 0.4.0
version: 0.4.2
ociArtifact: edge-orch/en/deb/platform-manageability-agent
- name: platform-observability-agent
version: 1.11.0
Expand Down
2 changes: 1 addition & 1 deletion platform-manageability-agent/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.2-dev
0.4.2
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: (C) 2025 Intel Corporation
// SPDX-FileCopyrightText: (C) 2026 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

// main package implements functionality of the Platform Manageability Agent
Expand Down Expand Up @@ -108,17 +108,19 @@ func main() {
}()

// Enable agent metrics
shutdown, err := metrics.Init(ctx, confs.MetricsEndpoint, confs.MetricsInterval, info.Component, info.Version)
if err != nil {
log.Errorf("Initialization of metrics failed: %v", err)
} else {
log.Info("Metrics collection started")
defer func() {
err = shutdown(ctx)
if err != nil && !errors.Is(err, context.Canceled) {
log.Errorf("Shutting down metrics failed! Error: %v", err)
}
}()
if confs.Metrics.Enabled {
shutdown, err := metrics.Init(ctx, confs.Metrics.Endpoint, confs.Metrics.Interval, info.Component, info.Version)
if err != nil {
log.Errorf("Initialization of metrics failed: %v", err)
} else {
log.Info("Metrics collection started")
defer func() {
err = shutdown(ctx)
if err != nil && !errors.Is(err, context.Canceled) {
log.Errorf("Shutting down metrics failed! Error: %v", err)
}
}()
}
}

log.Info("Platform Manageability Agent started successfully")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: (C) 2025 Intel Corporation
# SPDX-FileCopyrightText: (C) 2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

---
Expand All @@ -11,6 +11,8 @@ manageability:
heartbeatInterval: 10s
rpsAddress: 'rps.test.edgeorch.intel.com'
statusEndpoint: 'unix:///run/node-agent/node-agent.sock'
metricsEndpoint: 'unix:///run/platform-observability-agent/platform-observability-agent.sock'
metricsInterval: 10s
metrics:
enabled: true
endpoint: 'unix:///run/platform-observability-agent/platform-observability-agent.sock'
interval: 10s
accessTokenPath: /etc/intel_edge_node/tokens/platform-manageability-agent/access_token
5 changes: 5 additions & 0 deletions platform-manageability-agent/debian/postinst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ if [ ! -z "$RET" ]; then
sed -i "s/^rpsAddress: '.*'/rpsAddress: '$RET'/" /etc/edge-node/node/confs/platform-manageability-agent.yaml
fi

db_get platform-manageability-agent/metrics.enabled
if [ ! -z "$RET" ]; then
sed -i -e '/^metrics:$/{n' -e 's/enabled:.*/enabled: '"$RET"'/' -e '}' /etc/edge-node/node/confs/platform-manageability-agent.yaml
fi

# Create system group if it doesn't exist
groupadd -f bm-agents --system

Expand Down
24 changes: 15 additions & 9 deletions platform-manageability-agent/internal/config/config.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: (C) 2025 Intel Corporation
// SPDX-FileCopyrightText: (C) 2026 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

// Package config contains Platform Manageability Agent configuration management
Expand All @@ -17,6 +17,12 @@ import (

const HEARTBEAT_DEFAULT = 10

type ConfigMetrics struct {
Enabled bool `yaml:"enabled"`
Endpoint string `yaml:"endpoint"`
Interval time.Duration `yaml:"interval"`
}

type ConfigManageability struct {
Enabled bool `yaml:"enabled"`
ServiceURL string `yaml:"serviceURL"`
Expand All @@ -29,8 +35,7 @@ type Config struct {
GUID string `yaml:"GUID"`
Manageability ConfigManageability `yaml:"manageability"`
StatusEndpoint string `yaml:"statusEndpoint"`
MetricsEndpoint string `yaml:"metricsEndpoint"`
MetricsInterval time.Duration `yaml:"metricsInterval"`
Metrics ConfigMetrics `yaml:"metrics"`
RPSAddress string `yaml:"rpsAddress"`
AccessTokenPath string `yaml:"accessTokenPath"`
}
Expand All @@ -56,8 +61,13 @@ func New(configPath string, log *logrus.Entry) (*Config, error) {
config.Manageability.HeartbeatInterval = HEARTBEAT_DEFAULT * time.Second
}

if config.MetricsInterval == 0 || config.MetricsInterval <= 0 {
config.MetricsInterval = HEARTBEAT_DEFAULT * time.Second
if config.Metrics.Enabled {
if config.Metrics.Interval == 0 || config.Metrics.Interval <= 0 {
config.Metrics.Interval = HEARTBEAT_DEFAULT * time.Second
}
if config.Metrics.Endpoint == "" || !strings.HasPrefix(config.Metrics.Endpoint, "unix://") {
return nil, fmt.Errorf("agent metrics reporting address not provided by config file")
}
}

if config.Manageability.ServiceURL == "" {
Expand All @@ -72,10 +82,6 @@ func New(configPath string, log *logrus.Entry) (*Config, error) {
return nil, fmt.Errorf("agent status reporting address not provided by config file")
}

if config.MetricsEndpoint == "" || !strings.HasPrefix(config.MetricsEndpoint, "unix://") {
return nil, fmt.Errorf("agent metrics reporting address not provided by config file")
}

if config.GUID == "" {
return nil, fmt.Errorf("edge Node GUID not provided by config file")
}
Expand Down
Loading