ソースコード
DiskSpaceToCloudWatchMetrics.bat
@echo off
SET AWS_PROFILE_NAME=your_profile_name
SET CWM_AWS_REGION=ap-northeast-1
SET CWM_NAMESPACE=your_namespace
SET CWM_DIMENSION_NAME=your_dimension_name
SET CWM_DIMENSION_VALUE=your_dimension_value
for /f "tokens=1-5* usebackq" %%i in (`wmic logicaldisk get size^,freespace^,caption ^| findstr "C:"`) do (
call :setFreeSpace "%%j"
call :setTotalSpace "%%k"
)
echo FREE_SPACE=%FREE_SPACE%
echo TOTAL_SPACE=%TOTAL_SPACE%
aws cloudwatch put-metric-data --metric-name DiskFreeSpaceBytes --namespace %CWM_NAMESPACE% --value %FREE_SPACE% --dimensions %CWM_DIMENSION_NAME%=%CWM_DIMENSION_VALUE% --region %CWM_AWS_REGION% --profile %AWS_PROFILE_NAME%
aws cloudwatch put-metric-data --metric-name DiskTotalSpaceBytes --namespace %CWM_NAMESPACE% --value %TOTAL_SPACE% --dimensions %CWM_DIMENSION_NAME%=%CWM_DIMENSION_VALUE% --region %CWM_AWS_REGION% --profile %AWS_PROFILE_NAME%
exit /b 0
:setFreeSpace
type "%~1" >nul 2>&1
if %ERRORLEVEL% neq 0 (
@set FREE_SPACE=%~1
) else (
REM echo
)
exit /b 0
:setTotalSpace
type "%~1" >nul 2>&1
if %ERRORLEVEL% neq 0 (
@set TOTAL_SPACE=%~1
) else (
REM echo
)
exit /b 0