Exemple #1
0
        void emit_metrics(AwsHttpResult result)
        {
            MetricsPutter     metrics_putter = new MetricsPutter(metrics_manager_, result);
            PutRecordsRequest prr            = result.context <PutRecordsRequest>();

            double num_urs = 0;

            foreach (var kr in prr.Items())
            {
                metrics_putter.put(Names.UserRecordsPerKinesisRecord, kr.Items().Count, (ulong)kr.Items()[kr.Items().Count - 1].Predicted_shard());
                num_urs += kr.Items().Count;
            }

            metrics_putter.put
                (Names.RequestTime, result.duration_millis()).put
                (Names.KinesisRecordsPerPutRecordsRequest, prr.Items().Count).put
                (Names.UserRecordsPerPutRecordsRequest, num_urs);

            string err_code = null;

            if (result.successful())
            {
                var status_code = result.status_code();
                if (status_code != 200)
                {
                    // TODO parse the json (if any) to get the error code
                    err_code = "Http" + status_code;
                }
            }
            else
            {
                err_code = result.error().Substring(0, 255);
            }

            if (err_code != null)
            {
                metrics_putter.put
                    (Names.ErrorsByCode, 1, 0, err_code).put
                    (Names.AllErrors, 1);
            }
        }
Exemple #2
0
        private void decrease_buffered_data(PutRecordsRequest prr)
        {
            if (prr == null)
            {
                return;
            }

            foreach (var kr in prr.Items())
            {
                var shard_id = kr.Items()[0].Predicted_shard();
                if (shard_id != -1 && buffered_data_.Keys.Contains(shard_id))
                {
                    buffered_data_[shard_id] -= kr.accurate_size();
                }
            }
        }