EC2

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CpuUtilizationPanelCmd = &cobra.Command{
	Use:   "cpu_utilization_panel",
	Short: "getCpuUtilizationPanel command gets cloudwatch metrics data",
	Long:  `getCpuUtilizationPanel command gets cloudwatch metrics data`,

	Run: func(cmd *cobra.Command, args []string) {

		var authFlag, clientAuth, err = authenticate.AuthenticateCommand(cmd)
		if err != nil {
			log.Println("Error during authentication: %v", err)
			cmd.Help()
			return
		}
		if authFlag {

			instanceID, _ := cmd.PersistentFlags().GetString("instanceID")
			metricName, _ := cmd.PersistentFlags().GetString("query")
			namespace, _ := cmd.PersistentFlags().GetString("elementType")
			startTimeStr, _ := cmd.PersistentFlags().GetString("startTime")
			endTimeStr, _ := cmd.PersistentFlags().GetString("endTime")

			var startTime, endTime *time.Time

			if startTimeStr != "" {
				parsedStartTime, err := time.Parse(time.RFC3339, startTimeStr)
				if err != nil {
					log.Printf("Error parsing start time: %v", err)
					cmd.Help()
					return
				}
				startTime = &parsedStartTime
			} else {
				defaultStartTime := time.Now().Add(-5 * time.Minute)
				startTime = &defaultStartTime
			}

			if endTimeStr != "" {
				parsedEndTime, err := time.Parse(time.RFC3339, endTimeStr)
				if err != nil {
					log.Printf("Error parsing end time: %v", err)
					cmd.Help()
					return
				}
				endTime = &parsedEndTime
			} else {
				defaultEndTime := time.Now()
				endTime = &defaultEndTime
			}

			currentUsage, err := GetCpuUtilizationMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "SampleCount")
			if err != nil {
				log.Fatal(err)
			}

			averageUsage, err := GetCpuUtilizationMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "Average")
			if err != nil {
				log.Fatal(err)
			}

			maxUsage, err := GetCpuUtilizationMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "Maximum")
			if err != nil {
				log.Fatal(err)
			}

			jsonOutput := map[string]float64{
				"CurrentUsage": *currentUsage.MetricDataResults[0].Values[0],
				"AverageUsage": *averageUsage.MetricDataResults[0].Values[0],
				"MaxUsage":     *maxUsage.MetricDataResults[0].Values[0],
			}

			jsonString, err := json.Marshal(jsonOutput)
			if err != nil {
				log.Fatal(err)
			}

			fmt.Println(string(jsonString))
		}

	},
}
View Source
var MemoryUtilizationPanelCmd = &cobra.Command{
	Use:   "memory_utilization_panel",
	Short: "getCpuUtilizationPanel command gets cloudwatch metrics data",
	Long:  `getCpuUtilizationPanel command gets cloudwatch metrics data`,

	Run: func(cmd *cobra.Command, args []string) {

		var authFlag, clientAuth, err = authenticate.AuthenticateCommand(cmd)
		if err != nil {
			log.Println("Error during authentication: %v", err)
			cmd.Help()
			return
		}
		if authFlag {
			instanceID := "i-05e4e6757f13da657"
			metricName := "MemoryUtilization"
			namespace := "AWS/EC2"

			startTimeStr, _ := cmd.PersistentFlags().GetString("startTime")
			endTimeStr, _ := cmd.PersistentFlags().GetString("endTime")

			var startTime, endTime *time.Time

			if startTimeStr != "" {
				parsedStartTime, err := time.Parse(time.RFC3339, startTimeStr)
				if err != nil {
					log.Printf("Error parsing start time: %v", err)
					cmd.Help()
					return
				}
				startTime = &parsedStartTime
			} else {
				defaultStartTime := time.Now().Add(-5 * time.Minute)
				startTime = &defaultStartTime
			}

			if endTimeStr != "" {
				parsedEndTime, err := time.Parse(time.RFC3339, endTimeStr)
				if err != nil {
					log.Printf("Error parsing end time: %v", err)
					cmd.Help()
					return
				}
				endTime = &parsedEndTime
			} else {
				defaultEndTime := time.Now()
				endTime = &defaultEndTime
			}

			currentUsage, err := getMemoryMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "SampleCount")
			if err != nil {
				log.Fatal(err)
			}
			fmt.Printf("Current Memory Usage: %v\n", currentUsage)

			averageUsage, err := getMemoryMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "Average")
			if err != nil {
				log.Fatal(err)
			}

			maxUsage, err := getMemoryMetricData(clientAuth, instanceID, metricName, namespace, startTime, endTime, "Maximum")
			if err != nil {
				log.Fatal(err)
			}
			fmt.Printf("Current Memory Usage: %v\n", currentUsage)
			fmt.Printf("Average Memory Usage: %v\n", averageUsage)
			fmt.Printf("Max Memory Usage: %v\n", maxUsage)
		}

	},
}

Functions

func Execute

func Execute()

func Executed

func Executed()

func GetCpuUtilizationMetricData added in v1.0.2

func GetCpuUtilizationMetricData(clientAuth *model.Auth, instanceID, metricName, namespace string, startTime, endTime *time.Time, statistic string) (*cloudwatch.GetMetricDataOutput, error)

Types

type Result

type Result struct {
	CurrentUsage float64 `json:"currentUsage"`
	AverageUsage float64 `json:"averageUsage"`
	MaxUsage     float64 `json:"maxUsage"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL