Skip to content

Commit

Permalink
Merge pull request #493 from gemini-hlsw/GSCHED-730-add-requested-par…
Browse files Browse the repository at this point in the history
…ameters-to-logging-for-each-scheduler-run

Gsched 730 add requested parameters to logging for each scheduler run
  • Loading branch information
dngomez authored Aug 14, 2024
2 parents 8496c61 + 63d1b51 commit f104d05
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 1 deletion.
31 changes: 31 additions & 0 deletions scheduler/core/components/ranker/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,37 @@ def __post_init__(self):
if self.altitude_limits[site][MinMax.MAX] > Angle(90.0*u.deg):
raise ValueError(f'The maximum altitude limit for {site.name} must be 90 degrees or less.')

def __altitude_limits_to_str(self) -> str:
text = ""
for idx, site in enumerate(self.altitude_limits):
if idx != len(self.altitude_limits) - 1:
text += "\n ├─" + site.site_name + ": "
for midx, minmax in enumerate(self.altitude_limits[site]):
if midx != len(self.altitude_limits[site]) - 1:
text += "\n │ ├─" + str(minmax.name) + ": " + str(self.altitude_limits[site][minmax].value) + " deg"
else:
text += "\n │ └─" + str(minmax.name) + ": " + str(self.altitude_limits[site][minmax].value) + " deg"
else:
text += "\n └─" + site.site_name + ": "
for midx, minmax in enumerate(self.altitude_limits[site]):
if midx != len(self.altitude_limits[site]) - 1:
text += "\n ├─" + str(minmax.name) + ": " + str(self.altitude_limits[site][minmax].value) + " deg"
else:
text += "\n └─" + str(minmax.name) + ": " + str(self.altitude_limits[site][minmax].value) + " deg"
return text

def __str__(self) -> str:
return "Ranker Parameters\n" + \
f" ├─thesis_factor: {self.thesis_factor}\n" + \
f" ├─power: {self.power}\n" + \
f" ├─met_power: {self.met_power}\n" + \
f" ├─vis_power: {self.vis_power}\n" + \
f" ├─wha_power: {self.wha_power}\n" + \
f" ├─program_priority: {self.program_priority}\n" + \
f" ├─priority_factor: {self.priority_factor}\n" + \
f" ├─preimaging_factor: {self.preimaging_factor}\n" + \
f" └─altitude_limits: {self.__altitude_limits_to_str()}"

@final
@dataclass(frozen=True)
class RankerBandParameters:
Expand Down
2 changes: 1 addition & 1 deletion scheduler/core/programprovider/ocs/ocsprogramprovider.py
Original file line number Diff line number Diff line change
Expand Up @@ -926,7 +926,7 @@ def autocorr_lag(x):
# New atom entry
n_atom += 1
# print(f'\t Atom {n_atom}: {atomstr.rstrip(",")}')
logger.warning(f'Atom {n_atom}: {atomstr.rstrip(",")}')
logger.debug(f'Atom {n_atom}: {atomstr.rstrip(",")}')

# Convert all the different components into Resources.
classes = []
Expand Down
10 changes: 10 additions & 0 deletions scheduler/engine/params.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,13 @@ def from_json(received_params: dict) -> 'SchedulerParameters':
received_params['semesterVisibility'],
received_params['numNightsToSchedule'],
None)

def __str__(self) -> str:
return "Scheduler Parameters:\n" + \
f"├─start: {self.start}\n" + \
f"├─end: {self.end}\n" + \
f"├─sites: {', '.join([site.name for site in self.sites])}\n" + \
f"├─mode: {self.mode}\n" + \
f"├─semester_visibility: {self.semester_visibility}\n" + \
f"├─num_nights_to_schedule: {self.num_nights_to_schedule}\n" + \
f"└─ranker_parameters: {self.ranker_parameters}"
5 changes: 5 additions & 0 deletions scheduler/graphql_mid/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@
from scheduler.core.components.ranker import RankerParameters
from scheduler.engine import Engine, SchedulerParameters
from scheduler.db.planmanager import PlanManager
from scheduler.services.logger_factory import create_logger

from .types import (SPlans, NewNightPlans, SNightTimelines)
from .inputs import CreateNewScheduleInput


_logger = create_logger(__name__)

REDIS_URL = os.environ.get("REDISCLOUD_URL")
redis = aioredis.from_url(REDIS_URL) if REDIS_URL else None

Expand Down Expand Up @@ -114,6 +117,8 @@ async def test_sub_query(self, schedule_id: str, new_schedule_input: CreateNewSc
new_schedule_input.semester_visibility,
new_schedule_input.num_nights_to_schedule)

_logger.info(f"Run ID: {schedule_id}\n{params}")

task = asyncio.to_thread(sync_schedule, params)

if schedule_id not in active_subscriptions:
Expand Down

0 comments on commit f104d05

Please sign in to comment.