Bladeren bron

日志已采集,仍需解决指标生成问题

demo-user 2 maanden geleden
bovenliggende
commit
230e0e83b8
3 gewijzigde bestanden met toevoegingen van 547 en 87 verwijderingen
  1. 87 0
      configmap-vector.bak
  2. 137 87
      k8s/helm/logsys/templates/configmap-vector.yaml
  3. 323 0
      nohup.out

+ 87 - 0
configmap-vector.bak

@@ -0,0 +1,87 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: vector-config
+  namespace: {{ .Release.Namespace }}
+  labels:
+    app: vector
+data:
+  vector.toml: |
+    [sources.kubernetes_logs]
+    type = "kubernetes_logs"
+    read_from = "beginning"
+    fingerprint_lines = 0
+    max_read_bytes = 262144
+    glob_minimum_cooldown_ms = 100
+    max_line_bytes = 102400
+    ignore_older_secs = 0
+    data_dir = "/var/lib/vector"
+
+    [transforms.parse_and_enrich]
+    type = "remap"
+    inputs = ["kubernetes_logs"]
+    drop_on_abort = false
+    source = """
+    # Extract Kubernetes metadata
+    .pod_name = .kubernetes.pod_name
+    .namespace = .kubernetes.namespace_name
+    .container = .kubernetes.container_name
+    
+    # Initialize app with unknown
+    .app = "unknown"
+    
+    # Debug trace fields
+    .debug_pod = .kubernetes.pod_name
+    .debug_k8s_label_app = .kubernetes.labels.app
+    
+    # Check if this is a JSON log (Java/Logstash format with nested JSON)
+    if exists(.log) {
+      log_str = string!(.log)
+      .debug_log_length = length(log_str)
+      .debug_has_timestamp = contains(log_str, "@timestamp")
+      
+      if contains(log_str, "@timestamp") {
+        # Try to parse the nested JSON
+        parsed = parse_json(log_str) ?? null
+        if parsed != null {
+          .debug_parse_success = true
+          if exists(parsed.app) {
+            .app = parsed.app
+            .debug_source = "parsed_json"
+            .debug_parsed_app = parsed.app
+          } else {
+            .debug_parse_no_app = "app_field_missing_in_parsed_json"
+          }
+        } else {
+          .debug_parse_success = false
+          .debug_parse_error = "parse_json_returned_null"
+        }
+      } else {
+        .debug_no_timestamp = "log_does_not_contain_@timestamp"
+      }
+    }
+    
+    # Fallback to Kubernetes labels if we still don't have app name
+    if .app == "unknown" && exists(.kubernetes.labels.app) {
+      .app = .kubernetes.labels.app
+      .debug_source = "k8s_labels"
+      .debug_fallback_app = .kubernetes.labels.app
+    }
+    
+    .debug_final_app = .app
+    .env = "kubernetes"
+    """
+
+    [sinks.loki]
+    type = "loki"
+    inputs = ["parse_and_enrich"]
+    endpoint = "{{ .Values.vector.loki.endpoint }}"
+    encoding.codec = "json"
+    buffer.type = "memory"
+    buffer.max_events = 10000
+    # Use only templating for labels - Vector Loki sink needs raw field access
+    [sinks.loki.labels]
+    namespace = "{{ namespace }}"
+    app = "{{ app }}"
+    pod = "{{ pod_name }}"
+    container = "{{ container }}"

+ 137 - 87
k8s/helm/logsys/templates/configmap-vector.yaml

@@ -1,87 +1,137 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: vector-config
-  namespace: {{ .Release.Namespace }}
-  labels:
-    app: vector
-data:
-  vector.toml: |
-    [sources.kubernetes_logs]
-    type = "kubernetes_logs"
-    read_from = "beginning"
-    fingerprint_lines = 0
-    max_read_bytes = 262144
-    glob_minimum_cooldown_ms = 100
-    max_line_bytes = 102400
-    ignore_older_secs = 0
-    data_dir = "/var/lib/vector"
-
-    [transforms.parse_and_enrich]
-    type = "remap"
-    inputs = ["kubernetes_logs"]
-    drop_on_abort = false
-    source = """
-    # Extract Kubernetes metadata
-    .pod_name = .kubernetes.pod_name
-    .namespace = .kubernetes.namespace_name
-    .container = .kubernetes.container_name
-    
-    # Initialize app with unknown
-    .app = "unknown"
-    
-    # Debug trace fields
-    .debug_pod = .kubernetes.pod_name
-    .debug_k8s_label_app = .kubernetes.labels.app
-    
-    # Check if this is a JSON log (Java/Logstash format with nested JSON)
-    if exists(.log) {
-      log_str = string!(.log)
-      .debug_log_length = length(log_str)
-      .debug_has_timestamp = contains(log_str, "@timestamp")
-      
-      if contains(log_str, "@timestamp") {
-        # Try to parse the nested JSON
-        parsed = parse_json(log_str) ?? null
-        if parsed != null {
-          .debug_parse_success = true
-          if exists(parsed.app) {
-            .app = parsed.app
-            .debug_source = "parsed_json"
-            .debug_parsed_app = parsed.app
-          } else {
-            .debug_parse_no_app = "app_field_missing_in_parsed_json"
-          }
-        } else {
-          .debug_parse_success = false
-          .debug_parse_error = "parse_json_returned_null"
-        }
-      } else {
-        .debug_no_timestamp = "log_does_not_contain_@timestamp"
-      }
-    }
-    
-    # Fallback to Kubernetes labels if we still don't have app name
-    if .app == "unknown" && exists(.kubernetes.labels.app) {
-      .app = .kubernetes.labels.app
-      .debug_source = "k8s_labels"
-      .debug_fallback_app = .kubernetes.labels.app
-    }
-    
-    .debug_final_app = .app
-    .env = "kubernetes"
-    """
-
-    [sinks.loki]
-    type = "loki"
-    inputs = ["parse_and_enrich"]
-    endpoint = "{{ .Values.vector.loki.endpoint }}"
-    encoding.codec = "json"
-    buffer.type = "memory"
-    buffer.max_events = 10000
-    # Use only templating for labels - Vector Loki sink needs raw field access
-    [sinks.loki.labels]
-    namespace = "{{ namespace }}"
-    app = "{{ app }}"
-    pod = "{{ pod_name }}"
-    container = "{{ container }}"
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: vector-config
+  namespace: {{ .Release.Namespace }}
+  labels:
+    app: vector
+data:
+  vector.toml: |
+    data_dir = "/var/lib/vector"
+
+    [sources.kubernetes_logs]
+    type = "kubernetes_logs"
+    read_from = "end"
+
+    [transforms.parse_and_enrich]
+    type = "remap"
+    inputs = ["kubernetes_logs"]
+    drop_on_abort = false
+    source = """
+    log_line = .log
+    if log_line == null { log_line = .message }
+    if log_line == null { log_line = .msg }
+    log_line = to_string(log_line) ?? ""
+
+    parsed = null
+    if starts_with(log_line, "{") {
+      parsed = parse_json(log_line) ?? null
+    }
+
+    if parsed != null && is_object(parsed) {
+      msg_val = parsed.message
+      if msg_val == null { msg_val = parsed.msg }
+      if msg_val != null { .message = msg_val }
+
+      if parsed.level != null { .level = parsed.level }
+      if parsed.app != null { .app = parsed.app }
+      if parsed.env != null { .env = parsed.env }
+      if parsed.event_class != null { .event_class = parsed.event_class }
+      if parsed.event != null { .event_class = parsed.event }
+      if parsed.uri != null { .uri = parsed.uri }
+      if parsed.uri_group != null { .uri_group = parsed.uri_group }
+      if parsed.status != null { .status = parsed.status }
+      if parsed.duration != null { .duration = parsed.duration }
+      if parsed.traceId != null { .traceId = parsed.traceId }
+      if parsed.userId != null { .userId = parsed.userId }
+      if parsed.orderId != null { .orderId = parsed.orderId }
+      if parsed.error != null { .error = parsed.error }
+      if parsed.logger_name != null { .logger = parsed.logger_name }
+      if parsed.thread_name != null { .thread = parsed.thread_name }
+    }
+
+    if .message == null { .message = log_line }
+
+    app_val = .app
+    if app_val == null { app_val = .kubernetes.labels.app }
+    if app_val == null { app_val = .kubernetes.pod_labels.app }
+    if app_val == null { app_val = .kubernetes.container_name }
+    if app_val == null { app_val = .kubernetes.pod_name }
+    if app_val == null { app_val = "unknown" }
+    .app = app_val
+
+    env_str = to_string(.env) ?? ""
+    if contains(env_str, "prod") {
+      .env = "prod"
+    } else if contains(env_str, "stage") {
+      .env = "stage"
+    } else if contains(env_str, "dev") {
+      .env = "dev"
+    } else if contains(env_str, "local") {
+      .env = "local"
+    } else if env_str != "" {
+      .env = env_str
+    } else {
+      .env = "unknown"
+    }
+
+    uri_str = to_string(.uri) ?? ""
+    if uri_str != "" { .uri = uri_str }
+
+    if !exists(.uri_group) || .uri_group == "" {
+      if uri_str != "" {
+        if starts_with(uri_str, "/order/") {
+          .uri_group = "/order/*"
+        } else if starts_with(uri_str, "/payment/") {
+          .uri_group = "/payment/*"
+        } else if starts_with(uri_str, "/gateway/") {
+          .uri_group = "/gateway/*"
+        } else {
+          .uri_group = "/other"
+        }
+      } else {
+        .uri_group = "/other"
+      }
+    }
+
+    if !exists(.event_class) || .event_class == "" {
+      if uri_str != "" {
+        if contains(uri_str, "order") {
+          .event_class = "order"
+        } else if contains(uri_str, "payment") {
+          .event_class = "payment"
+        } else if contains(uri_str, "login") {
+          .event_class = "auth"
+        } else {
+          .event_class = "api"
+        }
+      } else {
+        .event_class = "api"
+      }
+    }
+
+    level_str = to_string(.level) ?? ""
+    if level_str != "" { .level = level_str } else { .level = "INFO" }
+
+    status_str = to_string(.status) ?? ""
+    if status_str != "" { .status = status_str } else { .status = "unknown" }
+
+    duration_str = to_string(.duration) ?? ""
+    duration_str = replace!(duration_str, "ms", "")
+    .duration_ms = to_int(duration_str) ?? null
+    """
+
+    [sinks.loki]
+    type = "loki"
+    inputs = ["parse_and_enrich"]
+    endpoint = "{{ .Values.vector.loki.endpoint }}"
+    encoding.codec = "json"
+    buffer.type = "memory"
+    buffer.max_events = 10000
+    [sinks.loki.labels]
+    env = '{{ "{{ env }}" }}'
+    app = '{{ "{{ app }}" }}'
+    level = '{{ "{{ level }}" }}'
+    event_class = '{{ "{{ event_class }}" }}'
+    uri_group = '{{ "{{ uri_group }}" }}'
+    status = '{{ "{{ status }}" }}'

+ 323 - 0
nohup.out

@@ -0,0 +1,323 @@
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+  Web API 日志生成 (Simple Mode)
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+URL: http://192.168.1.203
+
+运行中 (Ctrl+C 停止)...
+
+
创建: 0 | 支付:  | 失败: 0 | 总计: 0   [19:47:34] CREATE #1
+[19:47:35] CREATE #2
+[19:47:36] CREATE #3
+[19:47:36] CREATE #4
+
创建: 4 | 支付:  | 失败: 0 | 总计: 4   [19:47:37] CREATE #5
+[19:47:37] CREATE #6
+[19:47:38] CREATE #7
+[19:47:38] CREATE #8
+
创建: 8 | 支付: 1 | 失败: 0 | 总计: 9   [19:47:39] CREATE #9
+[19:47:39] CREATE #10
+[19:47:40] CREATE #11
+
创建: 11 | 支付: 1 | 失败: 0 | 总计: 12   [19:47:41] CREATE #12
+[19:47:41] CREATE #13
+[19:47:42] CREATE #14
+[19:47:42] CREATE #15
+
创建: 15 | 支付: 2 | 失败: 0 | 总计: 17   [19:47:43] CREATE #16
+[19:47:43] CREATE #17
+[19:47:44] CREATE #18
+[19:47:44] CREATE #19
+
创建: 19 | 支付: 3 | 失败: 0 | 总计: 22   [19:47:45] CREATE #20
+[19:47:45] CREATE #21
+[19:47:46] CREATE #22
+[19:47:46] CREATE #23
+
创建: 23 | 支付: 4 | 失败: 0 | 总计: 27   [19:47:47] CREATE #24
+[19:47:48] CREATE #25
+[19:47:48] CREATE #26
+
创建: 26 | 支付: 5 | 失败: 0 | 总计: 31   [19:47:49] CREATE #27
+[19:47:49] CREATE #28
+[19:47:50] CREATE #29
+[19:47:50] CREATE #30
+
创建: 30 | 支付: 5 | 失败: 0 | 总计: 35   [19:47:51] CREATE #31
+[19:47:51] CREATE #32
+[19:47:52] CREATE #33
+[19:47:52] CREATE #34
+
创建: 34 | 支付: 6 | 失败: 0 | 总计: 40   [19:47:53] CREATE #35
+[19:47:53] CREATE #36
+[19:47:54] CREATE #37
+
创建: 37 | 支付: 7 | 失败: 0 | 总计: 44   [19:47:55] CREATE #38
+[19:47:55] CREATE #39
+[19:47:56] CREATE #40
+[19:47:56] CREATE #41
+
创建: 41 | 支付: 8 | 失败: 0 | 总计: 49   [19:47:57] CREATE #42
+[19:47:57] CREATE #43
+[19:47:58] CREATE #44
+[19:47:58] CREATE #45
+
创建: 45 | 支付: 9 | 失败: 0 | 总计: 54   [19:47:59] CREATE #46
+[19:48:00] CREATE #47
+[19:48:00] CREATE #48
+
创建: 48 | 支付: 9 | 失败: 0 | 总计: 57   [19:48:01] CREATE #49
+[19:48:01] CREATE #50
+[19:48:02] CREATE #51
+[19:48:02] CREATE #52
+
创建: 52 | 支付: 10 | 失败: 0 | 总计: 62   [19:48:03] CREATE #53
+[19:48:03] CREATE #54
+[19:48:04] CREATE #55
+[19:48:04] CREATE #56
+
创建: 56 | 支付: 10 | 失败: 0 | 总计: 66   [19:48:05] CREATE #57
+[19:48:06] CREATE #58
+[19:48:06] CREATE #59
+
创建: 59 | 支付: 11 | 失败: 0 | 总计: 70   [19:48:07] CREATE #60
+[19:48:07] CREATE #61
+[19:48:08] CREATE #62
+[19:48:08] CREATE #63
+
创建: 63 | 支付: 11 | 失败: 0 | 总计: 74   [19:48:09] CREATE #64
+[19:48:09] CREATE #65
+[19:48:10] CREATE #66
+[19:48:11] CREATE #67
+
创建: 67 | 支付: 12 | 失败: 0 | 总计: 79   [19:48:11] CREATE #68
+[19:48:12] CREATE #69
+[19:48:12] CREATE #70
+
创建: 70 | 支付: 13 | 失败: 0 | 总计: 83   [19:48:13] CREATE #71
+[19:48:13] CREATE #72
+[19:48:14] CREATE #73
+[19:48:14] CREATE #74
+
创建: 74 | 支付: 14 | 失败: 0 | 总计: 88   [19:48:15] CREATE #75
+[19:48:15] CREATE #76
+[19:48:16] CREATE #77
+[19:48:16] CREATE #78
+
创建: 78 | 支付: 15 | 失败: 0 | 总计: 93   [19:48:17] CREATE #79
+[19:48:19] CREATE #80
+
创建: 80 | 支付: 15 | 失败: 0 | 总计: 95   [19:48:19] CREATE #81
+[19:48:20] CREATE #82
+[19:48:20] CREATE #83
+
创建: 83 | 支付: 16 | 失败: 0 | 总计: 99   [19:48:21] CREATE #84
+[19:48:21] CREATE #85
+[19:48:22] CREATE #86
+[19:48:22] CREATE #87
+
创建: 87 | 支付: 16 | 失败: 0 | 总计: 103   [19:48:23] CREATE #88
+[19:48:23] CREATE #89
+[19:48:24] CREATE #90
+[19:48:25] CREATE #91
+
创建: 91 | 支付: 17 | 失败: 0 | 总计: 108   [19:48:25] CREATE #92
+[19:48:26] CREATE #93
+[19:48:26] CREATE #94
+
创建: 94 | 支付: 17 | 失败: 0 | 总计: 111   [19:48:27] CREATE #95
+[19:48:27] CREATE #96
+[19:48:28] CREATE #97
+[19:48:28] CREATE #98
+
创建: 98 | 支付: 17 | 失败: 0 | 总计: 115   [19:48:29] CREATE #99
+[19:48:29] CREATE #100
+[19:48:30] CREATE #101
+[19:48:30] CREATE #102
+
创建: 102 | 支付: 18 | 失败: 0 | 总计: 120   [19:48:31] CREATE #103
+[19:48:32] CREATE #104
+[19:48:32] CREATE #105
+[19:48:33] CREATE #106
+
创建: 106 | 支付: 19 | 失败: 0 | 总计: 125   [19:48:33] CREATE #107
+[19:48:34] CREATE #108
+[19:48:34] CREATE #109
+
创建: 109 | 支付: 20 | 失败: 0 | 总计: 129   [19:48:35] CREATE #110
+[19:48:35] CREATE #111
+[19:48:36] CREATE #112
+[19:48:36] CREATE #113
+
创建: 113 | 支付: 21 | 失败: 0 | 总计: 134   [19:48:37] CREATE #114
+[19:48:38] CREATE #115
+[19:48:38] CREATE #116
+[19:48:39] CREATE #117
+
创建: 117 | 支付: 22 | 失败: 0 | 总计: 139   [19:48:39] CREATE #118
+[19:48:40] CREATE #119
+[19:48:40] CREATE #120
+
创建: 120 | 支付: 22 | 失败: 0 | 总计: 142   [19:48:41] CREATE #121
+[19:48:41] CREATE #122
+[19:48:42] CREATE #123
+[19:48:42] CREATE #124
+
创建: 124 | 支付: 23 | 失败: 0 | 总计: 147   [19:48:43] CREATE #125
+[19:48:44] CREATE #126
+[19:48:44] CREATE #127
+[19:48:45] CREATE #128
+
创建: 128 | 支付: 24 | 失败: 0 | 总计: 152   [19:48:45] CREATE #129
+[19:48:46] CREATE #130
+[19:48:46] CREATE #131
+
创建: 131 | 支付: 25 | 失败: 0 | 总计: 156   [19:48:47] CREATE #132
+[19:48:47] CREATE #133
+[19:48:48] CREATE #134
+[19:48:48] CREATE #135
+
创建: 135 | 支付: 25 | 失败: 0 | 总计: 160   [19:48:49] CREATE #136
+[19:48:50] CREATE #137
+[19:48:50] CREATE #138
+[19:48:51] CREATE #139
+
创建: 139 | 支付: 26 | 失败: 0 | 总计: 165   [19:48:51] CREATE #140
+[19:48:52] CREATE #141
+[19:48:52] CREATE #142
+
创建: 142 | 支付: 26 | 失败: 0 | 总计: 168   [19:48:53] CREATE #143
+[19:48:53] CREATE #144
+[19:48:54] CREATE #145
+[19:48:54] CREATE #146
+
创建: 146 | 支付: 27 | 失败: 0 | 总计: 173   [19:48:55] CREATE #147
+[19:48:55] CREATE #148
+[19:48:56] CREATE #149
+[19:48:57] CREATE #150
+
创建: 150 | 支付: 28 | 失败: 0 | 总计: 178   [19:48:57] CREATE #151
+[19:48:58] CREATE #152
+[19:48:58] CREATE #153
+[19:48:59] CREATE #154
+
创建: 154 | 支付: 29 | 失败: 0 | 总计: 183   [19:48:59] CREATE #155
+[19:49:00] CREATE #156
+[19:49:00] CREATE #157
+
创建: 157 | 支付: 29 | 失败: 0 | 总计: 186   [19:49:01] CREATE #158
+[19:49:02] CREATE #159
+
创建: 159 | 支付: 30 | 失败: 0 | 总计: 189   [19:49:03] CREATE #160
+[19:49:03] CREATE #161
+[19:49:04] CREATE #162
+[19:49:05] CREATE #163
+
创建: 163 | 支付: 31 | 失败: 0 | 总计: 194   [19:49:05] CREATE #164
+[19:49:06] CREATE #165
+[19:49:06] CREATE #166
+[19:49:07] CREATE #167
+
创建: 167 | 支付: 31 | 失败: 0 | 总计: 198   [19:49:07] CREATE #168
+[19:49:08] CREATE #169
+[19:49:08] CREATE #170
+
创建: 170 | 支付: 32 | 失败: 0 | 总计: 202   [19:49:09] CREATE #171
+[19:49:09] CREATE #172
+[19:49:10] CREATE #173
+[19:49:10] CREATE #174
+
创建: 174 | 支付: 33 | 失败: 0 | 总计: 207   [19:49:11] CREATE #175
+[19:49:12] CREATE #176
+[19:49:12] CREATE #177
+[19:49:13] CREATE #178
+
创建: 178 | 支付: 34 | 失败: 0 | 总计: 212   [19:49:13] CREATE #179
+[19:49:14] CREATE #180
+[19:49:14] CREATE #181
+[19:49:15] CREATE #182
+
创建: 182 | 支付: 34 | 失败: 0 | 总计: 216   [19:49:15] CREATE #183
+[19:49:16] CREATE #184
+[19:49:16] CREATE #185
+
创建: 185 | 支付: 35 | 失败: 0 | 总计: 220   [19:49:17] CREATE #186
+[19:49:18] CREATE #187
+[19:49:18] CREATE #188
+[19:49:19] CREATE #189
+
创建: 189 | 支付: 36 | 失败: 0 | 总计: 225   [19:49:19] CREATE #190
+[19:49:20] CREATE #191
+[19:49:20] CREATE #192
+[19:49:21] CREATE #193
+
创建: 193 | 支付: 37 | 失败: 0 | 总计: 230   [19:49:21] CREATE #194
+[19:49:22] CREATE #195
+[19:49:22] CREATE #196
+
创建: 196 | 支付: 38 | 失败: 0 | 总计: 234   [19:49:23] CREATE #197
+[19:49:24] CREATE #198
+[19:49:24] CREATE #199
+[19:49:25] CREATE #200
+
创建: 200 | 支付: 39 | 失败: 0 | 总计: 239   [19:49:25] CREATE #201
+[19:49:26] CREATE #202
+[19:49:26] CREATE #203
+[19:49:27] CREATE #204
+
创建: 204 | 支付: 40 | 失败: 0 | 总计: 244   [19:49:27] CREATE #205
+[19:49:28] CREATE #206
+[19:49:28] CREATE #207
+
创建: 207 | 支付: 41 | 失败: 0 | 总计: 248   [19:49:29] CREATE #208
+[19:49:29] CREATE #209
+[19:49:30] CREATE #210
+[19:49:31] CREATE #211
+
创建: 211 | 支付: 42 | 失败: 0 | 总计: 253   [19:49:31] CREATE #212
+[19:49:32] CREATE #213
+[19:49:32] CREATE #214
+[19:49:33] CREATE #215
+
创建: 215 | 支付: 42 | 失败: 0 | 总计: 257   [19:49:33] CREATE #216
+[19:49:34] CREATE #217
+[19:49:34] CREATE #218
+[19:49:35] CREATE #219
+
创建: 219 | 支付: 42 | 失败: 0 | 总计: 261   [19:49:35] CREATE #220
+[19:49:36] CREATE #221
+[19:49:37] CREATE #222
+
创建: 222 | 支付: 42 | 失败: 0 | 总计: 264   [19:49:37] CREATE #223
+[19:49:38] CREATE #224
+[19:49:38] CREATE #225
+[19:49:39] CREATE #226
+
创建: 226 | 支付: 43 | 失败: 0 | 总计: 269   [19:49:39] CREATE #227
+[19:49:40] CREATE #228
+[19:49:40] CREATE #229
+[19:49:41] CREATE #230
+
创建: 230 | 支付: 44 | 失败: 0 | 总计: 274   [19:49:41] CREATE #231
+[19:49:42] CREATE #232
+[19:49:42] CREATE #233
+
创建: 233 | 支付: 45 | 失败: 0 | 总计: 278   [19:49:43] CREATE #234
+[19:49:44] CREATE #235
+[19:49:44] CREATE #236
+[19:49:45] CREATE #237
+
创建: 237 | 支付: 46 | 失败: 0 | 总计: 283   [19:49:45] CREATE #238
+[19:49:46] CREATE #239
+[19:49:46] CREATE #240
+[19:49:47] CREATE #241
+
创建: 241 | 支付: 46 | 失败: 0 | 总计: 287   [19:49:47] CREATE #242
+[19:49:48] CREATE #243
+[19:49:48] CREATE #244
+
创建: 244 | 支付: 47 | 失败: 0 | 总计: 291   [19:49:49] CREATE #245
+[19:49:50] CREATE #246
+[19:49:50] CREATE #247
+[19:49:51] CREATE #248
+
创建: 248 | 支付: 48 | 失败: 0 | 总计: 296   [19:49:51] CREATE #249
+[19:49:52] CREATE #250
+[19:49:52] CREATE #251
+[19:49:53] CREATE #252
+
创建: 252 | 支付: 48 | 失败: 0 | 总计: 300   [19:49:53] CREATE #253
+[19:49:54] CREATE #254
+[19:49:54] CREATE #255
+[19:49:55] CREATE #256
+
创建: 256 | 支付: 49 | 失败: 0 | 总计: 305   [19:49:56] CREATE #257
+[19:49:56] CREATE #258
+[19:49:57] CREATE #259
+
创建: 259 | 支付: 50 | 失败: 0 | 总计: 309   [19:49:57] CREATE #260
+[19:49:58] CREATE #261
+[19:49:58] CREATE #262
+[19:49:59] CREATE #263
+
创建: 263 | 支付: 51 | 失败: 0 | 总计: 314   [19:49:59] CREATE #264
+[19:50:00] CREATE #265
+[19:50:00] CREATE #266
+[19:50:01] CREATE #267
+
创建: 267 | 支付: 52 | 失败: 0 | 总计: 319   [19:50:01] CREATE #268
+[19:50:02] CREATE #269
+[19:50:03] CREATE #270
+
创建: 270 | 支付: 53 | 失败: 0 | 总计: 323   [19:50:03] CREATE #271
+[19:50:04] CREATE #272
+[19:50:04] CREATE #273
+[19:50:05] CREATE #274
+
创建: 274 | 支付: 54 | 失败: 0 | 总计: 328   [19:50:05] CREATE #275
+[19:50:06] CREATE #276
+[19:50:06] CREATE #277
+[19:50:07] CREATE #278
+
创建: 278 | 支付: 54 | 失败: 0 | 总计: 332   [19:50:07] CREATE #279
+[19:50:08] CREATE #280
+[19:50:08] CREATE #281
+[19:50:09] CREATE #282
+
创建: 282 | 支付: 55 | 失败: 0 | 总计: 337   [19:50:10] CREATE #283
+[19:50:10] CREATE #284
+[19:50:11] CREATE #285
+
创建: 285 | 支付: 56 | 失败: 0 | 总计: 341   [19:50:11] CREATE #286
+[19:50:12] CREATE #287
+[19:50:12] CREATE #288
+[19:50:13] CREATE #289
+
创建: 289 | 支付: 57 | 失败: 0 | 总计: 346   [19:50:13] CREATE #290
+[19:50:14] CREATE #291
+[19:50:15] CREATE #292
+[19:50:15] CREATE #293
+
创建: 293 | 支付: 58 | 失败: 0 | 总计: 351   [19:50:16] CREATE #294
+[19:50:16] CREATE #295
+[19:50:17] CREATE #296
+
创建: 296 | 支付: 58 | 失败: 0 | 总计: 354   [19:50:17] CREATE #297
+[19:50:18] CREATE #298
+[19:50:18] CREATE #299
+[19:50:19] CREATE #300
+
创建: 300 | 支付: 58 | 失败: 0 | 总计: 358   [19:50:19] CREATE #301
+[19:50:20] CREATE #302
+[19:50:21] CREATE #303
+[19:50:21] CREATE #304
+
创建: 304 | 支付: 59 | 失败: 0 | 总计: 363   [19:50:22] CREATE #305
+[19:50:22] CREATE #306
+[19:50:23] CREATE #307
+
创建: 307 | 支付: 60 | 失败: 0 | 总计: 367   [19:50:23] CREATE #308
+[19:50:24] CREATE #309
+[19:50:24] CREATE #310
+[19:50:25] CREATE #311
+
创建: 311 | 支付: 61 | 失败: 0 | 总计: 372   [19:50:25] CREATE #312
+[19:50:26] CREATE #313
+[19:50:27] CREATE #314
+[19:50:27] CREATE #315
+
创建: 315 | 支付: 61 | 失败: 0 | 总计: 376   [19:50:28] CREATE #316