// -------------------------------------------------------------------------
@Override
public void functionInvoked(final String configurationName, final String functionId, final int invocationCount,
final double executionNanos, final double dataInputBytes, final double dataOutputBytes) {
final ConcurrentMap<String, PerFunction> statsMap = getConfigurationData(configurationName);
PerFunction stats = statsMap.get(functionId);
if (stats == null) {
stats = new PerFunction(functionId, invocationCount, executionNanos, dataInputBytes, dataOutputBytes);
PerFunction newStats = statsMap.putIfAbsent(functionId, stats);
if (newStats == null) {
return; // data stored in constructor of PerFunction above
}
stats = newStats;
}