Skip to content

Commit df1e241

Browse files
committed
A few changes
- Improving docstrings - Removing writeable folder requirement - Logging errors with extra field
1 parent 313abad commit df1e241

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

codecovopentelem/__init__.py

+14-15
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ class UnableToStartProcessorException(Exception):
2727

2828

2929
class CodecovCoverageStorageManager(object):
30-
def __init__(self, writeable_folder: str, filters: Dict):
31-
if writeable_folder is None:
32-
writeable_folder = "/home/codecov"
33-
self._writeable_folder = writeable_folder
30+
def __init__(self, filters: Dict):
3431
self.inner = {}
3532
self._filters = filters
3633

@@ -46,7 +43,7 @@ def possibly_start_cov_for_span(self, span) -> bool:
4643
CoverageSpanFilter.span_kind_filter
4744
) and span.kind not in self._filters.get(CoverageSpanFilter.span_kind_filter):
4845
return False
49-
cov = coverage.Coverage(data_file=f"{self._writeable_folder}/.{span_id}file")
46+
cov = coverage.Coverage(data_file=None)
5047
self.inner[span_id] = cov
5148
cov.start()
5249
return True
@@ -132,7 +129,10 @@ def export(self, spans):
132129
)
133130
res.raise_for_status()
134131
except requests.RequestException:
135-
log.warning("Unable to send profiling data to codecov")
132+
log.warning(
133+
"Unable to send profiling data to codecov",
134+
extra=dict(response_data=res.json())
135+
)
136136
return SpanExportResult.FAILURE
137137
location = res.json()["raw_upload_location"]
138138
requests.put(
@@ -155,27 +155,26 @@ def get_codecov_opentelemetry_instances(
155155
environment: Optional[str] = None,
156156
needs_version_creation: bool = True,
157157
codecov_endpoint: str = None,
158-
writeable_folder: str = None,
159158
) -> Tuple[CodecovCoverageGenerator, CoverageExporter]:
160159
"""
161160
Entrypoint for getting a span processor/span exporter
162161
pair for getting profiling data into codecov
163-
162+
164163
Args:
165164
repository_token (str): The profiling-capable authentication token
166-
sample_rate (float): The sampling rate for codecov
167-
untracked_export_rate (float): Description
165+
sample_rate (float): The sampling rate for codecov, a number from 0 to 1
166+
untracked_export_rate (float): The export rate for codecov for non-sampled spans,
167+
a number from 0 to 1
168+
code (str): The code of this profiling
168169
filters (Optional[Dict], optional): A dictionary of filters for determining which
169170
spans should have its coverage tracked
170171
version_identifier (Optional[str], optional): The identifier for what
171172
software version is being profiled
172173
environment (Optional[str], optional): Which environment this profiling is running on
173-
code (str): The code of this profiling
174+
needs_version_creation (bool, optional): Whether the "create this version" needs to be
175+
called (one can choose to call it manually beforehand and disable it here)
174176
codecov_endpoint (str, optional): For configuring the endpoint in case
175177
the user is in enterprise (not supported yet). Default is "https://api.codecov.io/"
176-
writeable_folder (str, optional): A folder that is guaranteed to be write-able
177-
in the system. It's only used for temporary files, and nothing is expected
178-
to live very long in there.
179178
"""
180179
codecov_endpoint = codecov_endpoint or "https://api.codecov.io"
181180
if code is None:
@@ -194,7 +193,7 @@ def get_codecov_opentelemetry_instances(
194193
response.raise_for_status()
195194
except requests.HTTPError:
196195
raise UnableToStartProcessorException()
197-
manager = CodecovCoverageStorageManager(writeable_folder, filters or {})
196+
manager = CodecovCoverageStorageManager(filters or {})
198197
generator = CodecovCoverageGenerator(manager, sample_rate)
199198
exporter = CoverageExporter(
200199
manager, repository_token, code, codecov_endpoint, untracked_export_rate,

0 commit comments

Comments
 (0)