copy-metric-configs.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env bash
  2. # Exit on error:
  3. set -e
  4. # Debug mode:
  5. set -x
  6. function print_usage() {
  7. echo "Usage: $0 search_directory build_resources_output_directory"
  8. }
  9. search_directory=$1
  10. if [ ! -d "$search_directory" ]; then
  11. echo "Must specify a valid search_directory"
  12. print_usage
  13. exit 1
  14. fi
  15. build_resources_output_directory=$2
  16. if [ ! -d "$build_resources_output_directory" ]; then
  17. echo "Must specify a valid build_resources_output_directory"
  18. print_usage
  19. exit 1
  20. fi
  21. # Add the full package path.
  22. build_resources_output_directory="$build_resources_output_directory/datadog/trace/agent/jmxfetch"
  23. # Find all the metrics.yaml files containing "jmx_metrics:"
  24. metrics_files=$(grep --include=metrics.yaml -rwl $search_directory -e 'jmx_metrics:')
  25. if [ -z "$metrics_files" ]; then
  26. echo "No metrics.yaml files with jmx_metrics blocks found."
  27. print_usage
  28. exit 1
  29. fi
  30. # reset file and ensure directories exists
  31. mkdir -p $build_resources_output_directory/metricconfigs
  32. > $build_resources_output_directory/metricconfigs.txt
  33. for input_file in $metrics_files ; do
  34. # generate new name based on integration folder name which should look like this:
  35. # integrations-core/<integration_name>/datadog_checks/<integration_name>/data/metrics.yaml
  36. output_file=$(echo "$input_file" | awk -F/ '{print $2}')
  37. # save file name in metricconfigs.txt
  38. echo "$output_file.yaml" >> $build_resources_output_directory/metricconfigs.txt
  39. # copy to output location
  40. output_file="$build_resources_output_directory/metricconfigs/$output_file.yaml"
  41. cp $input_file $output_file
  42. done