prometheus-client-mmap 0.7.0.beta40 → 0.7.0.beta41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f51d0d3d39230181b8a35905cac312c52dde03b
4
- data.tar.gz: 1ec3f78ad1276fb225d73e31f1f0e91369c8afa2
3
+ metadata.gz: 49ac78e6bb20f940989a545386f5a8340dd3a046
4
+ data.tar.gz: e11aeb1946d4c4afa0f09e5037bbb7b7e5c23a6e
5
5
  SHA512:
6
- metadata.gz: bf88cde2f108d7b3ade4ae808e0be40256acfa39cc8df26a3ce6ed7e023113314907f777afee1e28ac252293f46815b5bc898b9ab35485ccc61cc387b1c49934
7
- data.tar.gz: 2d47f29dba886af6f5d3d462754712074e3c7d3e11c1072f399fd9621055299ec16dd5baa5e18c765220e013171d8b21596c7f96593ceb94479773821cd1b3cc
6
+ metadata.gz: 961b21816d5e183e2ea030512481b9627671d66b632ed2be9644eda9ed512a933a4f96a6fef06163ea21998675c6a226e6571f3bda4a10b97c83189d066f489c
7
+ data.tar.gz: 2351c759ee985a918c5aecaa752cb4071fb0686f4185944ea13559b9bc3cb1fd7b8b8c2e1a166be689f0a960a02204d6a277243c331ddde97814f1a393f632c5
@@ -1,5 +1,5 @@
1
1
  require 'mkmf'
2
- $CFLAGS << ' -std=c11 -Wall -Wextra -Werror'
2
+ $CFLAGS << ' -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wextra -Werror'
3
3
 
4
4
  CONFIG['warnflags'].slice!(/ -Wdeclaration-after-statement/)
5
5
 
@@ -6,7 +6,6 @@
6
6
  #include <value_access.h>
7
7
  #include <globals.h>
8
8
 
9
-
10
9
  #include <jsmn.h>
11
10
  #include <hashmap.h>
12
11
  #include <file_reading.h>
@@ -21,7 +20,6 @@ ID sym_livesum;
21
20
  ID sym_gauge;
22
21
  ID sym_pid;
23
22
  ID sym_samples;
24
- ID sym_key_name;
25
23
 
26
24
  int aggregate_files(struct hashmap *map, VALUE list_of_files){
27
25
  buffer_t reading_buffer = (buffer_t) { .buffer = NULL };
@@ -91,7 +89,6 @@ void Init_fast_mmaped_file() {
91
89
  sym_livesum = rb_intern("livesum");
92
90
  sym_pid = rb_intern("pid");
93
91
  sym_samples = rb_intern("samples");
94
- sym_key_name = rb_intern("__key_name");
95
92
 
96
93
  MMAPED_FILE = rb_define_module("FastMmapedFile");
97
94
  rb_define_singleton_method(MMAPED_FILE, "to_metrics", method_to_metrics, 1);
@@ -5,20 +5,10 @@
5
5
  #include <jsmn.h>
6
6
  #include "file_parsing.h"
7
7
 
8
- //ID sym_gauge;
9
- //ID sym_min;
10
- //ID sym_max;
11
- //ID sym_livesum;
12
-
13
8
  HASHMAP_FUNCS_CREATE(entry, const entry_struct, entry_struct)
14
9
 
15
10
  typedef int (*compare_fn) (const void *a, const void *b);
16
11
 
17
- inline int is_pid_significant(const entry_struct *a){
18
- ID mp = a->multiprocess_mode;
19
- return a->type == sym_gauge && !(mp == sym_min || mp == sym_max || mp == sym_livesum);
20
- }
21
-
22
12
  size_t hashmap_hash_entry(const entry_struct *entry){
23
13
  size_t hash = 0;
24
14
 
@@ -78,7 +68,7 @@ void merge_entry(entry_struct *found, const entry_struct *entry){
78
68
  } else if (entry->multiprocess_mode == sym_livesum) {
79
69
  found->value += entry->value;
80
70
  } else {
81
- found->value += entry->value; //TODO: this shouldn't happen
71
+ found->value = entry->value;
82
72
  }
83
73
  } else {
84
74
  found->value += entry->value;
@@ -174,17 +164,14 @@ int process_buffer(file_t *file_info, buffer_t *source, struct hashmap *map){
174
164
  entry.pid = file_info->pid;
175
165
  entry.type = file_info->type;
176
166
 
177
- *(entry.json + encoded_len) = '\0'; // TODO: NONO
178
-
179
- pos += value_offset;
180
- memcpy(&entry.value, source->buffer + pos, sizeof(double)); //too
167
+ memcpy(&entry.value, entry.json + value_offset, sizeof(double));
181
168
 
182
169
  if (!process_entry(map, &entry)) {
183
170
  entries_destroy(map);
184
171
  return 0;
185
172
  }
186
173
 
187
- pos += sizeof(double);
174
+ pos += value_offset + sizeof(double);
188
175
  }
189
176
  return 1;
190
177
  }
@@ -220,3 +207,7 @@ int sort_map_entries(const struct hashmap *map, entry_struct ***sorted_entries){
220
207
  return 1;
221
208
  }
222
209
 
210
+ int is_pid_significant(const entry_struct *e){
211
+ ID mp = e->multiprocess_mode;
212
+ return e->type == sym_gauge && !(mp == sym_min || mp == sym_max || mp == sym_livesum);
213
+ }
@@ -20,4 +20,6 @@ void entries_destroy(struct hashmap *map);
20
20
  int process_buffer(file_t *file_info, buffer_t *source, struct hashmap *map);
21
21
  int sort_map_entries(const struct hashmap *map, entry_struct ***sorted_entries);
22
22
 
23
+ int is_pid_significant(const entry_struct *e);
24
+
23
25
  #endif
@@ -9,7 +9,7 @@ int file_open(file_t *file, const char *filepath){
9
9
  file->path = malloc(filepath_len);
10
10
  memcpy(file->path, filepath, filepath_len + 1);
11
11
 
12
- if (file->fd < 0){
12
+ if (file->fd == NULL){
13
13
  save_exception(rb_eArgError, "Can't open %s, errno: %d", filepath, errno);
14
14
 
15
15
  return 0;
@@ -8,6 +8,5 @@ extern ID sym_livesum;
8
8
  extern ID sym_gauge;
9
9
  extern ID sym_pid;
10
10
  extern ID sym_samples;
11
- extern ID sym_key_name;
12
11
 
13
12
  #endif
@@ -1,6 +1,7 @@
1
1
  #ifndef MMAP_H
2
2
  #define MMAP_H
3
3
 
4
+ #include <unistd.h>
4
5
  #include <ruby.h>
5
6
 
6
7
  #define MM_MODIFY 1
@@ -16,18 +17,7 @@
16
17
  #define MM_TMP (1 << 5)
17
18
 
18
19
  #ifndef MMAP_RETTYPE
19
- #ifndef _POSIX_C_SOURCE
20
- #define _POSIX_C_SOURCE 199309
21
- #endif /* !_POSIX_C_SOURCE */
22
- #ifdef _POSIX_VERSION
23
- #if _POSIX_VERSION >= 199309
24
- #define MMAP_RETTYPE void *
25
- #endif /* _POSIX_VERSION >= 199309 */
26
- #endif /* _POSIX_VERSION */
27
- #endif /* !MMAP_RETTYPE */
28
-
29
- #ifndef MMAP_RETTYPE
30
- #define MMAP_RETTYPE caddr_t
20
+ #define MMAP_RETTYPE void *
31
21
  #endif
32
22
 
33
23
  typedef struct {
@@ -46,6 +46,13 @@ void append_entry(VALUE string, const entry_struct *entry){
46
46
  rb_str_cat(string, ",", 1);
47
47
  }
48
48
  }
49
+
50
+ if (is_pid_significant(entry)){
51
+ rb_str_cat(string, ",pid=\"", 6);
52
+ rb_str_append(string, entry->pid);
53
+ rb_str_cat(string, "\"", 1);
54
+ }
55
+
49
56
  rb_str_cat(string, "}", 1);
50
57
  }
51
58
 
@@ -1,3 +1,6 @@
1
+ #include <ruby.h>
2
+ #include <ruby/intern.h>
3
+
1
4
  #include <sys/mman.h>
2
5
  #include <unistd.h>
3
6
  #include <fcntl.h>
@@ -16,7 +19,7 @@ int open_and_extend_file(mm_ipc *i_mm, size_t len) {
16
19
 
17
20
  if (lseek(fd, len - i_mm->t->len - 1, SEEK_END) == -1) {
18
21
  close(fd);
19
- rb_raise(rb_eIOError, "Can't lseek %lu", len - i_mm->t->len - 1);
22
+ rb_raise(rb_eIOError, "Can't lseek %zu", len - i_mm->t->len - 1);
20
23
  }
21
24
 
22
25
  if (write(fd, "\000", 1) != 1) {
@@ -124,8 +127,8 @@ VALUE method_add_entry(VALUE self, VALUE positions, VALUE key, VALUE value) {
124
127
  rb_error_frozen("mmap");
125
128
  }
126
129
 
127
- if (RSTRING_LEN(key) > UINT32_MAX) {
128
- rb_raise(rb_eArgError, "string length gt %u", UINT32_MAX);
130
+ if (RSTRING_LEN(key) > INT32_MAX) {
131
+ rb_raise(rb_eArgError, "string length gt %d", INT32_MAX);
129
132
  }
130
133
 
131
134
  uint32_t key_length = (uint32_t)RSTRING_LEN(key);
@@ -150,11 +153,11 @@ VALUE method_get_double(VALUE self, VALUE index) {
150
153
  size_t idx = NUM2UINT(index);
151
154
 
152
155
  if ((i_mm->t->real + sizeof(double)) <= idx) {
153
- rb_raise(rb_eIndexError, "index %ld out of string", idx);
156
+ rb_raise(rb_eIndexError, "index %zu out of string", idx);
154
157
  }
155
158
 
156
159
  double tmp;
157
160
 
158
161
  memcpy(&tmp, (char *)i_mm->t->addr + idx, sizeof(double));
159
162
  return DBL2NUM(tmp);
160
- }
163
+ }
@@ -1,8 +1,6 @@
1
1
  #ifndef VALUE_ACCESS_H
2
2
  #define VALUE_ACCESS_H
3
3
 
4
- #include <ruby.h>
5
-
6
4
  VALUE method_load_used(VALUE self);
7
5
 
8
6
  VALUE method_save_used(VALUE self, VALUE value);
Binary file
@@ -1,5 +1,5 @@
1
1
  module Prometheus
2
2
  module Client
3
- VERSION = '0.7.0.beta40'.freeze
3
+ VERSION = '0.7.0.beta41'.freeze
4
4
  end
5
5
  end
@@ -1,9 +1,9 @@
1
1
  module Prometheus
2
2
  module Client
3
3
  <<<<<<< HEAD
4
- VERSION = '0.7.0.beta36'.freeze
4
+ VERSION = '0.7.0.beta40'.freeze
5
5
  =======
6
- VERSION = '0.7.0.beta32'.freeze
7
- >>>>>>> Fix compilation on GCC 4.9
6
+ VERSION = '0.7.0.beta38'.freeze
7
+ >>>>>>> upstream/master
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus-client-mmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.beta40
4
+ version: 0.7.0.beta41
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Schmidt
@@ -105,7 +105,6 @@ files:
105
105
  - README.md
106
106
  - ext/fast_mmaped_file/extconf.rb
107
107
  - ext/fast_mmaped_file/fast_mmaped_file.c
108
- - ext/fast_mmaped_file/file_aggregation.c
109
108
  - ext/fast_mmaped_file/file_format.h
110
109
  - ext/fast_mmaped_file/file_parsing.c
111
110
  - ext/fast_mmaped_file/file_parsing.h
File without changes