I think it is good accepting either valid (all) data or nothing. This way client knows he's sending incomplete/wrong data. We could just skip those items, but that would be bad, because client will think metric data are stored correctly. I don't see too much value in reporting back rejected records, because if client is program, he'll most likely not be able to recover anyway and if such client does not handle such response, then we're in same situation as ignoring invalid items. If he's human, he would get same amount of info from response as it is now.

I'll add more info about that invalid item, so it's more clear which one was it.