Skip to content

Commit 7b8347d

Browse files
committed
Merge pull request #3 from bchecketts/master
Only pull in new data
2 parents 5302038 + 763b4f0 commit 7b8347d

File tree

1 file changed

+53
-22
lines changed

1 file changed

+53
-22
lines changed

getMetrics.php

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -77,34 +77,65 @@
7777
);
7878
}
7979
}
80-
$params['StartTime'] = date('Y-m-d H:i:s', time() - 14 * 86400);
81-
$params['EndTime'] = date('Y-m-d H:i:s', time());
82-
$params['Period'] = 3600;
83-
$params['Statistics'] = $statistics;
8480

81+
$latest = time() - 14 * 86400;
8582
try {
86-
$stats = $awsClient->getMetricStatistics($params);
8783

88-
$datapoints = array();
84+
$results = $influxClient->$influxCreds['database']->query("
85+
SELECT *
86+
FROM {$columnName}
87+
LIMIT 1
88+
");
89+
foreach ($results as $row) {
90+
$latest = $row->time;
91+
}
92+
} catch (Exception $e) {
93+
echo "Exception - maybe series doesn't exist for {$columnName}\n";
94+
}
8995

90-
foreach ($stats['Datapoints'] as $point) {
91-
echo " {$metric} @ {$point['Timestamp']} \t";
92-
$thisPoint = array(
93-
'time' => strtotime($point['Timestamp']),
94-
);
95-
foreach ($statistics as $stat) {
96-
$thisPoint[$stat] = (float)$point[$stat];
97-
echo "\t{$stat} => {$point[$stat]}";
96+
echo "Looking for data since {$latest}\n";
97+
98+
$remaining = ceil((time() - $latest) / 60);
99+
$page = 0;
100+
$influxDb = $influxClient->$influxCreds['database'];
101+
102+
do {
103+
echo "Requesting page {$page} with remaining={$remaining}\n";
104+
105+
$params['StartTime'] = date('Y-m-d H:i:s', $latest);
106+
$params['EndTime'] = date('Y-m-d H:i:s', $latest + 60 * 1440);
107+
$params['Period'] = 60;
108+
$params['Statistics'] = $statistics;
109+
110+
try {
111+
$stats = $awsClient->getMetricStatistics($params);
112+
113+
$datapoints = array();
114+
115+
foreach ($stats['Datapoints'] as $point) {
116+
echo " {$metric} @ {$point['Timestamp']} \t";
117+
$thisPoint = array(
118+
'time' => strtotime($point['Timestamp']),
119+
);
120+
foreach ($statistics as $stat) {
121+
$thisPoint[$stat] = (float)$point[$stat];
122+
echo "\t{$stat} => {$point[$stat]}";
123+
}
124+
echo "\n";
125+
$datapoints[] = $thisPoint;
98126
}
99-
echo "\n";
100-
$datapoints[] = $thisPoint;
101-
}
102127

103-
$influxDb = $influxClient->$influxCreds['database'];
104-
$influxDb->insert($columnName, $datapoints);
128+
if ($datapoints) {
129+
$influxDb->insert($columnName, $datapoints);
130+
}
131+
$remaining -= 1440;
132+
echo "Bottom of loop with remaining={$remaining}\n";
133+
$latest += 60*1440;
134+
$page++;
105135

106-
} catch (Exception $e) {
107-
echo "EXCEPTION: ".$e->getMessage();
108-
}
136+
} catch (Exception $e) {
137+
echo "EXCEPTION: ".$e->getMessage();
138+
}
139+
} while ($remaining >= 0);
109140
}
110141
}

0 commit comments

Comments
 (0)